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: