147. 对链表进行插入

总体思路: 遍历链表,找出每一个逆序的(preNode.val>node.val)的node,并再从头遍历,插入第一个比它大的Node的前面,这很像下一个排列中的题目。

       1 2 3 5 6 4  任务就素找出4,将其插入5之前

操作思路:

  1.  变量声明,dummy_head; dummy与sec作为一前一后的指针,需要在循环中变化,循环条件为 while sec:

  2. 当顺序时dummy<=sec, dummy = dummy.next ; sec = sec.next 

   当逆序时dummy>sec,就要取出sec,再用一层循环查找5; 插入完毕后,本次循环中只变sec不变dummy sec = dummy.next 

 

操作细节:

  1. 在逆序sec =4寻找5的时候,是用phead.next来找的,是因为插入sec变量需要其前面的node和后面的node,直接使用phead就不能保存其前面的node3

    while phead.next and phead.next.val<=sec.val:

 

 

 

 

 

 

 

posted @ 2020-09-05 11:30  ChevisZhang  阅读(191)  评论(0编辑  收藏  举报