解题思路:
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