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

思路: 1.新创建个节点,比较两个list1 和 list2 当前节点,不断遍历,将新创建的节点指向比较当中的最小的节点 2.肯定有一个节点没有遍历完,需要判断一下,直接next指向后面不为空的节点

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 newHead = new ListNode(-1);
        ListNode currentNode = newHead;
        ListNode cur1 = list1, cur2 = list2;
        while(cur1 != null && cur2 != null){
            if(cur1.val < cur2.val){
                currentNode.next = cur1;
                cur1 = cur1.next;
            }else{
                currentNode.next = cur2;
                cur2 = cur2.next;
            }
            currentNode = currentNode.next;
        }
        if(cur1 == null && cur2 != null){
            currentNode.next = cur2;
        }
        if(cur1 != null && cur2 == null){
            currentNode.next = cur1;
        }
        return newHead.next;
    }
}
面试必刷TOP101 文章被收录于专栏

面试必刷TOP101

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务