当前位置:   article > 正文

简单算法 合并有序链表(java)_java中 有几个有序列表,合并成一个链表 最简单的方法

java中 有几个有序列表,合并成一个链表 最简单的方法

简单算法 合并有序链表(java)
描述
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。
示例1
输入:
{1},{2}
返回值:
{1,2}
想法:利用两个节点,1为头节点,2为连接链表的中间节点,通过不断判断来连接两个链表
代码:

public ListNode mergeTwoLists (ListNode l1, ListNode l2) {
        if(l1 == null) return l2;
        if(l2 == null) return l1;
        ListNode head = (l1.val >= l2.val) ? l2: l1;
        ListNode nex = head;
        if( head == l1 ) l1 = l1.next;
        else l2 = l2.next;
        while(l1 !=null && l2 !=null){
            if(l1.val >= l2.val){
                nex.next = l2;
                l2 = l2.next;
            }else{
                nex.next = l1;
                l1 = l1.next;
            }
            nex = nex.next;
        }
        nex.next = (l1 == null)? l2 : l1;
        return head;
    }
   

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程挑战者/article/detail/62901
推荐阅读
相关标签
  

闽ICP备14008679号