题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

JZ25 合并两个排序的链表
使用指针,先判断哪个链表可以作为头(head),然后使用三个指针 p,q,temp 将较大的链表中的节点插入第一个链表中(head链表)
import java.util.*;
/*
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) return list2;
        if(list2 == null) return list1;
        
        ListNode head = null;
        ListNode q = null;
        
        if(list1.val < list2.val) {
            head = list1;
            q = list2;
        } else {
            head = list2;
            q = list1;
        }
        
        ListNode p = head,temp = null;
        
        while(q != null) {
            if(p.next == null || p.next.val > q.val) {
                temp = q;
                q = q.next;
                temp.next = p.next;
                p.next = temp;
            } else {
                p = p.next;
            }
        }
        return head;
    }
}


全部评论

相关推荐

头像
11-18 16:08
福州大学 Java
影流之主:干10年不被裁,我就能拿别人一年的钱了,日子有盼头了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务