剑指Offer——合并两个排序的链表

By AverageJoeWang
 标签:

合并两个排序的链表

  • 题目描述

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

  • 解题思路

    • 首先判断list1和list2是否为空,其中一个空就可以返回不为空的
    • 声明一个返回node指针为空
    • 分别比较list1和list2指针指着的当前值,小的赋值给node,递归调用Merge函数
  • 代码实现
/*
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 (list2 == null) return list1;
        if (list1 == null) return list2;
        ListNode node = null;
        if (list1.val < list2.val){
            node = list1;
            node.next = Merge(list1.next, list2);
        }else {
            node = list2;
            node.next = Merge(list1, list2.next);
        }
        return node;
    }
}