剑指offer:合并两个排序的链表
题目描述:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:
递归和非递归,非递归为什么要建立dummy节点?这个问题还需要再考虑考虑
1 /* 2 public class ListNode { 3 int val; 4 ListNode next = null; 5 6 ListNode(int val) { 7 this.val = val; 8 } 9 }*/ 10 public class Solution { 11 public ListNode Merge(ListNode list1,ListNode list2) { 12 if(list1==null) return list2; 13 else if(list2==null) return list1; 14 ListNode list = new ListNode(0); 15 ListNode dummy = list; 16 //递归 17 // if(list1.val<list2.val){ 18 // list = list1; 19 //list.next=Merge(list1.next,list2); 20 // } 21 // else{ 22 // list = list2; 23 // list.next=Merge(list1,list2.next); 24 // } 25 // return list; 26 while(list1!=null&&list2!=null){ 27 if(list1.val<list2.val){ 28 list.next = list1; 29 list1 = list1.next; 30 } 31 else{ 32 list.next = list2; 33 list2 = list2.next; 34 } 35 list = list.next; 36 } 37 list.next = (list1==null)?list2:list1; 38 return dummy.next; 39 } 40 }