zoukankan      html  css  js  c++  java
  • 剑指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 }
  • 相关阅读:
    LaTeX中表格多行显示的最简单设置方法
    获取Google音乐的具体信息(方便对Google音乐批量下载)
    移动硬盘提示格式化解决的方法,未正确删除导致不能读取文件提示格式化解决方式
    Android Service 服务(一)—— Service
    华为C8816电信版ROOT过程
    Linux crontab 命令格式与具体样例
    Python用subprocess的Popen来调用系统命令
    我的EJB学习历程
    接口和逻辑--多进程或单一进程
    uva 11354
  • 原文地址:https://www.cnblogs.com/noaman/p/5415942.html
Copyright © 2011-2022 走看看