码农小汪-剑指Offer之14 -合并两个排序的链表

来源:互联网 发布:mac版变色龙工具 编辑:程序博客网 时间:2024/05/17 12:20

题目描述

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

解题思路:

我们可以直接按照题目的要求进行解题。但是要注意特殊的情况 List 为空 list2 为空 ! 注意保留头结点,和指针节点的处理

代码

package JianzhiOffer;/* * 输入两个单调递增的链表, * 输出两个链表合成后的链表, * 当然我们需要合成后的链表满足 * 单调不减规则。 就是递增的  111111  12345 */public class Sloution14 {    public ListNode Merge(ListNode list1, ListNode list2) {        ListNode head, p;        if (list1 == null) {            return list2;        }        if (list2 == null) {            return list2;        }        // 两个都不是NULL        if (list1.val <= list2.val) {            head = list1;            list1 = list1.next;        } else {            head = list2;            list2 = list2.next;        }        p = head;        p.next = null;        while (list1 != null && list2 != null) {            if (list1.val <= list2.val) {                p.next = list1;                p = p.next;                list1 = list1.next;            } else {                p.next = list2;                p = p.next;                list2 = list2.next;            }        }        if (list1 != null) {            p.next = list1;        }        if (list2 != null) {            p.next = list2;        }        return head;    }}
0 0