【一次過】Lintcode 219. 在排序連結串列中插入一個節點
阿新 • • 發佈:2018-12-31
在連結串列中插入一個節點。
樣例
給出一個連結串列 1->4->6->8
和 val = 5
.。
插入後的結果為 1->4->5->6->8
。
解題思路:
簡單。考慮到可能插入到表頭,所以需要dummy節點做輔助。
/** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { /** * @param head: The head of linked list. * @param val: An integer. * @return: The head of new linked list. */ public ListNode insertNode(ListNode head, int val) { // write your code here ListNode dummy = new ListNode(0); dummy.next = head; ListNode p = dummy; while(p != null){ ListNode next = p.next; if(next != null && next.val < val){ p = p.next; }else{ //當p.val<val && next.val>val時代表找到插入節點的位置 ListNode newNode = new ListNode(val); newNode.next = next; p.next = newNode; break; } } return dummy.next; } }