zoukankan      html  css  js  c++  java
  • 两个排序链表的合并(Easy)

    问题来源:选自leetcode 21:合并两个有序链表

    问题描述: 

    题目给定信息:

      给定两个有序链表,把两个链表合并成一个链表,并且合并后的链表依然是有序的。这两个链表中允许有重复元素

    问题分析:

      设置一个临时头节点,同时遍历两个原链表,遍历循环的条件是两个链表都不为空的情况下循环才能继续执行。每次遍历两个链表的节点都要比较两个节点的大小,然后把较小的哪一个节点保存在新建临时头节点所表示链表中。但我们要考虑一些特殊的情况,两个链表长度不一样的时候,当循环推出时候还会有一个链表没有遍历结束,这时候我们要判断是哪一个,然后把没有遍历完的链表直接放在新链表的后面即可。

    函数实现:

     1 public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
     2         ListNode newHead = new ListNode(-1);
     3         ListNode pre = newHead;
     4         while(l1!=null&&l2!=null) {
     5             if(l1.val<=l2.val) {
     6                 pre.next = l1;
     7                 l1 = l1.next;
     8             }else {
     9                 pre.next = l2;
    10                 l2 = l2.next;
    11             }
    12             pre = pre.next;
    13         }
    14         if(l1!=null) {
    15             pre.next = l1;
    16         }
    17         if(l2!= null) {
    18             pre.next = l2;
    19         }
    20         return newHead.next;
    21     }

    运行结果:

  • 相关阅读:
    Android学习——SAX解析方式
    Android学习——pull解析方式
    Android学习——使用okhttp
    开课第十五周周总结
    顶会热词3
    顶会热词2
    顶会热词1
    配置JAVA环境
    配置mybaits的一些坑
    Maven配置和idea种tomcat配置的一些坑点
  • 原文地址:https://www.cnblogs.com/BaoZiY/p/10685169.html
Copyright © 2011-2022 走看看