zoukankan      html  css  js  c++  java
  • 剑指Offer:面试题17——合并两个排序的链表

    题目描述

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

    思路1:

    分别用p1,p2两个指针扫描两个有序链表,p3指针去构建新链表h3.
    p1.val <= p2.val,则p3把p1指向的结点加入h3,p1后移动。反之,对p2进行对应操作。

    代码:(未验证正确性,提交时显示超时,所以不知道功能是否实现,还是仅仅时间复杂度高?)

    public ListNode Merge(ListNode list1,ListNode list2) {
    
            if(list1 == null){
                return list2;
            }
            if(list2 == null){
                return list1;
            }
    
            ListNode p1 = list1;
            ListNode p2 = list2;
    
            ListNode list3;
            if(list1.val <= list2.val){
                list3 = list1;
            }else{
                list3 = list2;
            }
            ListNode p3 = list3;
    
    
            while(p1 != null && p2 != null){
    
                if(p1.val <= p2.val){
                    p3.next = p1;
                    p1 = p1.next;
    
                }else{
                    p3.next = p2;
                    p2 = p2.next;
                }
    
                p3 = p3.next;
            }
    
            if(p1 == null){
                p3.next = p2;
            }
    
             if(p2 == null){
                p3.next = p1;
            }
    
            return list3;
        }

    思路2:

    采用递归的思想

    代码:

    public ListNode Merge(ListNode list1,ListNode list2) {
    
            if(list1 == null){
                return list2;
            }
            if(list2 == null){
                return list1;
            }
    
            ListNode list3;
            if(list1.val <= list2.val){
                list3 = list1;
                list3.next = Merge(list1.next, list2);
            }else{
                list3 = list2;
                list3.next = Merge(list1, list2.next);
            }
    
            return list3;
        }
  • 相关阅读:
    uva 1605 building for UN ——yhx
    uva 120 stacks of flapjacks ——yhx
    uva133-S.B.S.
    Uva10082 WERTYU -S.B.S.
    Quicksum-S.B.S.
    NOIP2014提高组 DAY1 -SilverN
    NOIP2013普及组 -SilverN
    uva 1354 Mobile Computing ——yhx
    UVa 11292 Dragon of Loowater
    UVa 839 Not so Mobile
  • 原文地址:https://www.cnblogs.com/wenbaoli/p/5655718.html
Copyright © 2011-2022 走看看