解题思路:
1. 需要2个指针,一个是遍历List,指向将要插入的节点,另外一个是遍历已经sorted的部分,找到要插入的位置
2. 在List的头,加入一个dummy node, 因为新插入的节点可能会在头部
public ListNode insertionSortList(ListNode head) { ListNode res = new ListNode(0); ListNode pNode = head; while(pNode != null){ ListNode tNode = res; while( tNode.next != null && pNode.val > tNode.next.val){ tNode = tNode.next; } ListNode tNextNode = tNode.next; tNode.next = pNode; pNode = pNode.next; tNode.next.next = tNextNode; } return res.next; }
No comments:
Post a Comment