• 剑指offer系列14---合并两个升序链表


    14【题目】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
    *  【思路】依次比较两个链表头指针,小者作为合并后的头指针,依次比较,使用递归。

     1 package com.exe3.offer;
     2 
     3 /**
     4  * 14【题目】输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
     5  *   【思路】依次比较两个链表头指针,小者作为合并后的头指针,依次比较,使用递归。
     6  * @author WGS
     7  *
     8  */
     9 public class MergeLinkList {
    10     public static class LinkNode{
    11         int val;
    12         LinkNode next=null;
    13         public LinkNode(){
    14             
    15         }
    16         public LinkNode(int n){
    17             this.val=n;
    18         }
    19     }
    20     public LinkNode getMergeLinkList(LinkNode headnode1,LinkNode headnode2){
    21         if(headnode1==null){
    22             return headnode2;
    23         }else if(headnode2==null){
    24             return headnode1;
    25         }
    26         LinkNode headNodeOfMergeLinkList=null;
    27         
    28         if(headnode1.val<headnode2.val){
    29             headNodeOfMergeLinkList=headnode1;
    30             headNodeOfMergeLinkList.next=getMergeLinkList(headnode1.next,headnode2);
    31         }else{
    32             headNodeOfMergeLinkList=headnode2;
    33             headNodeOfMergeLinkList.next=getMergeLinkList(headnode1,headnode2.next);
    34         }
    35         
    36         
    37         
    38         
    39         return headNodeOfMergeLinkList;
    40         
    41             
    42     }
    43     public static void main(String[] args){
    44         LinkNode node11=new LinkNode(1);
    45         LinkNode node12=new LinkNode(3);
    46         LinkNode node13=new LinkNode(5);
    47         LinkNode node14=new LinkNode(7);
    48         node11.next=node12;node12.next=node13;node13.next=node14;
    49         
    50         LinkNode node21=new LinkNode();
    51         LinkNode node22=new LinkNode();
    52         LinkNode node23=new LinkNode();
    53         LinkNode node24=new LinkNode(18);
    54         node21.next=node22;node22.next=node23;node23.next=node24;
    55         
    56         LinkNode node=new MergeLinkList().getMergeLinkList(node11, node21);
    57         while(node!=null){
    58             System.out.println(node.val);
    59             node=node.next;
    60         }
    61     }
    62     
    63     
    64     
    65     
    66     
    67     
    68     
    69     
    70     
    71 }
  • 相关阅读:
    多线程调用本质
    音频编码解码器库 libZPlay
    C#多线程代码调试技巧
    SharpMap实践代码
    Work Queue based multithreading
    (转)C#写的NoSQL开源系统(系列)
    A .NET State Machine Toolkit Part I
    在线开发环境地址
    数字音乐商KKBOX三季度将进军日本市场
    苹果官方购置iPad用户将获1100元退款
  • 原文地址:https://www.cnblogs.com/noaman/p/5415942.html
Copyright © 2020-2023  润新知