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

合并两个排序的链表

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

非递归插入法
将任意一个原始链表(list1)作为返回表,将另一个作为参数表
根据大小将节点插入最后返回list1即可
时间复杂度O(n),空间复杂度O(1)
public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1 == null)   return list2;
        if(list2 == null)   return list1;
        ListNode next = null;
        ListNode cur = list1;
        while(list2 != null){
            if(cur.val<= list2.val && cur.next != null && cur.next.val<= list2.val){
                cur = cur.next;
            }else if(cur.val<=list2.val){
                next = list2.next;
                list2.next = cur.next;
                cur.next = list2;
                cur = list2;
                list2 = next;
            }else {
                next = list2.next;
                list2.next = cur;
                list1 = list2;
                list2 = next;
            }
        }
        return list1;
    }
}

全部评论

相关推荐

故事和酒66:假设一下,就算报了培训班,不还是要投简历,只是项目改了。那不如先写几个培训班的项目,纯靠编,然后试试有没有面试。如果真有再报也不迟,如果没有还是没有,那就不是培训班的问题了。
点赞 评论 收藏
分享
团子请爱我一次_十月...:不是戈门,干哪来了,这就是java嘛
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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