美文网首页
剑指 Offer 25. 合并两个排序的链表

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

作者: BitterOutsider | 来源:发表于2020-11-20 20:01 被阅读0次

题目描述

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

解题思路

  • 声明两个指针,n1指向l1的第一个节点,n2指向l2的第一个节点。
  • 声明结果指针resultNode,以及结果头节点result(并初始化,最后只要返回result.next就可以了)。
  • 每次比较n1n2指向节点的大小,如果n1指向的小,把n1指向的节点加到resultNode后面,resultNode指向下一向,n1l2的下一个节点。
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode n1 = l1;
        ListNode n2 = l2;
        ListNode resultNode = new ListNode(-1);
        ListNode result = resultNode;
        while (n1 != null || n2 != null) {
            if (n1 == null) {
                resultNode.next = n2;
                break;
            }
            if (n2 == null) {
                resultNode.next = n1;
                break;
            }
            if (n1.val > n2.val) {
                resultNode.next = n2;
                n2 = n2.next;
            } else {
                resultNode.next = n1;
                n1 = n1.next;
            }
            resultNode = resultNode.next;
        }
        return result.next;
    }
}

相关文章

网友评论

      本文标题:剑指 Offer 25. 合并两个排序的链表

      本文链接:https://www.haomeiwen.com/subject/rotjiktx.html