码迷,mamicode.com
首页 > 编程语言 > 详细

剑指Offer--合并两个排序链表

时间:2018-08-15 22:50:22      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:ext   思路   class   因此   合成   合并   --   一个   16px   

问题描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路:首先比较两个链表的头结点,如果链表1的头结点小于链表2的头结点,链表1的头结点将是合并后链表的头结点。然后继续合并两个链表中的剩余结点,两个链表中剩余的结点依然是有序的,因此合并步骤与第一步相同。   显然这是一个递归过程,可用递归函数实现。

代码:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1==null&&list2==null){
            return null;
        }
        if(list1==null){
            return list2;
        }
        if(list2==null){
            return list1;
        }
        ListNode head = null;
        if(list1.val<list2.val){
            head=list1;
            head.next=Merge(list1.next,list2);
        }else{
            head=list2;
            head.next=Merge(list1,list2.next);
        }
        return head;
    }
}

 

剑指Offer--合并两个排序链表

标签:ext   思路   class   因此   合成   合并   --   一个   16px   

原文地址:https://www.cnblogs.com/xiaoxli/p/9484138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!