剑指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题目和一些刷题用的数据结构,单调栈,树状数组,差分数组,后面还会更新红黑树等较为复杂的数据结构

全部评论

相关推荐

06-04 20:17
门头沟学院 Java
牛客713608542号:有的,我今天刚面了一个小厂,他们说刚好有缺人,就放出来了,成都的旅鸽,hxd不如去试试,但是是线下哇,不知道他们支不支持线上,如果有面记得多复习一下sql,我死在这一块上了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务