#21 Merge Two Sorted Lists

题目:

Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.




    题解:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            ListNode l =  new ListNode(0);//这里不是ListNode l =  <del><em>null</em></del>;
            ListNode tmp = l;
            while(l1 != null && l2 != null){
                if(l1.val<=l2.val){
                    tmp.next = l1;
                    l1 = l1.next;
                }
                else{
                    tmp.next = l2;
                    l2 = l2.next;
                }
                tmp = tmp.next;
            }
            
            //l2取尽,只剩l1
            /*while(l1 != null){
                tmp.next = l1;
                tmp = tmp.next;
                l1 = l1.next;
            }*/
            if(l1 != null){//链表结构,故<u><em>if即可胜任</em></u>
                tmp.next = l1;
            }
            //l1取尽,只剩l2
            /*while(l2 != null){
                tmp.next = l2;
                tmp = tmp.next;
                l2 = l2.next;
            }*/
            if(l2 != null){
                tmp.next = l2;
            }
            
            return l.next;
        }
    }
    再多说一句, 若要开始ListNode l = null,最后return l,则需要在while语句前判断l1和l2的值以便给l头结点赋值(由此在更前需添加判断l1和l2是否为null的语句),也可Acess,但繁琐不堪。


    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值