问题描述
leetcode 21, Merge Two Sorted Lists
解题思路
-
非递归解法,l1,l2两个节点依次往后延升,并且不断的进行节点大小的判断。
1 ListNode dummy = new ListNode(-1);
2 /* 首先找出合并后的头节点 dummy.next
3 if (l1==null && l2!=null) { return l2;}
4 if (l2==null && l1!=null) { return l1;}
5 if (l1==null && l2==null) { return null;}
6 dummy.next = l1.val <= l2.val? l1:l2;
7 ListNode pNode = new ListNode(0); */
8 // 利用pNode节点进行大小的比较和后延
9 ListNode pNode = dummy;
10 while (l1 != null && l2 != null) {
11 if (l1.val <= l2.val) {
12 pNode.next = l1;
13 l1 = l1.next;
14 } else {
15 pNode.next = l2;
16 l2 = l2.next;
17 }
18 pNode = pNode.next;
19 }
20 if (l1 != null)
21 pNode.next = l1;
22 if (l2 != null)
23 pNode.next = l2;
24
25 return dummy.next