剑指offer之十五---合并两个排序的链表

来源:互联网 发布:淘宝一心升二心 编辑:程序博客网 时间:2024/05/17 04:57

题目描述

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。


链接:https://www.nowcoder.com/questionTerminal/d8b6b4358f774294a89de2a6ac4d9337来源:牛客网              /**             * 算法思想:构造两个指针分别指向两个链表,构造一个新链表;         * 两个指针所指向的节点比较大小,较小的放在前面指针后移,较大的不动,继续比较大小;         * 若某个链表已空,直接将另一个链表剩下的部分链接到新链表中。         */public class Solution {    public ListNode Merge(ListNode list1,ListNode list2) {        if(list1==null){            return list2;        }        if(list2==null){            return list1;        }        //递归版本        ListNode newhead=null;        if(list1.val<=list2.val){            newhead=list1;            newhead.next=Merge(list1.next,list2);        }else{            newhead=list2;            newhead.next=Merge(list1,list2.next);        }        return newhead;        /*非递归版本        ListNode head = new ListNode(-1);        ListNode node=head;        while(list1!=null&&list2!=null){            if(list1.val<=list2.val){                node.next=list1;                list1=list1.next;            }else{                node.next=list2;                list2=list2.next;            }            node=node.next;        }        while(list1!=null){            node.next=list1;            node=node.next;            list1=list1.next;        }        while(list2!=null){            node.next=list2;            node=node.next;            list2=list2.next;        }        return head.next;        */    }}


原创粉丝点击