剑指offer 合并两个排序链表 java代码

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

注意要点
- 不要在定义了新的ListNode节点 后,直接写出下面这种错误写法:

    ListNode node = null
    if (list1.val >= list2.val) {
            node.next = list2
            list2 = list2.next;
        }

这种情形忽略了初始化为空的前提
两个有序链表,只需要不断的比较两个节点值的大小,然后依次后移挪动即可。
参考代码如下:

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if (list1 == null) {

            return list2;
        }
        if (list2 == null) {

            return list1;
        }
        ListNode node = null;
        if (list1.val >= list2.val) {
            node = list2;
            node.next = Merge(list1, list2.next);
        }
        if (list1.val < list2.val) {
            node = list1;
            node.next = Merge(list1.next, list2);

        }
        return node;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章