Problem
Insert a node in a sorted linked list.
Example
Given list = 1->4->6->8 and val = 5.
Return 1->4->5->6->8.
Solution
public class Solution {
public ListNode insertNode(ListNode head, int val) {
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode node = new ListNode(val);
//if val is the smallest in entire list
if (head == null || val < head.val) {
dummy.next = node;
node.next = head;
return dummy.next;
}
//while val is larger than head.val, loop the linked list and check the range between head & head.next to insert
while (head != null && head.next != null) {
if (head.val <= val && val <= head.next.val) {
ListNode next = head.next;
head.next = node;
node.next = next;
break;
} else if (val > head.next.val) {
head = head.next;
}
}
//if node not inserted in the loop
if (head.next == null) {
head.next = node;
}
return dummy.next;
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。