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

合并两个排序的链表

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;
    }
}


全部评论

相关推荐

双非坐过牢:非佬,可以啊10.28笔试,11.06评估11.11,11.12两面,11.19oc➕offer
点赞 评论 收藏
分享
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务