剑指offer-16-合并有序链表
合并两个排序的链表
http://www.nowcoder.com/questionTerminal/d8b6b4358f774294a89de2a6ac4d9337
思路
- 建立一个链表头指针,把两个输入链表剥离下来放到新链表之后
- 直接合并,把链表list2中的元素插入到链表list1中
其中两种思路基本一致,因为结果中并不包含思路一的头指针,可以把头指针设置为list1和list2的较小者,然后转化为思路1代码
public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { ListNode h=new ListNode(0); ListNode p=h,l1=list1,l2=list2; while(l1!=null || l2!=null){ if(l1==null){ p.next=l2; l2=l2.next; }else if(l2==null){ p.next=l1; l1=l1.next; }else{ if(l1.val<=l2.val){ p.next=l1; l1=l1.next; }else{ p.next=l2; l2=l2.next; } } p=p.next; } return h.next; } }
剑指offer与数据结构 文章被收录于专栏
本专栏包括剑指offer题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构