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 }
  • 相关阅读:
    mac os programming
    Rejecting Good Engineers?
    Do Undergrads in MIT Struggle to Obtain Good Grades?
    Go to industry?
    LaTex Tricks
    Convert jupyter notebooks to python files
    How to get gradients with respect to the inputs in pytorch
    Uninstall cuda 9.1 and install cuda 8.0
    How to edit codes on the server which runs jupyter notebook using your pc's bwroser
    Leetcode No.94 Binary Tree Inorder Traversal二叉树中序遍历(c++实现)
  • 原文地址:https://www.cnblogs.com/noaman/p/5415942.html
Copyright © 2011-2022 走看看