zoukankan      html  css  js  c++  java
  • 剑指Offer(Java版)第二十题:输入两个单调递增的链表,输出两个链表合成后的链表, 当然我们需要合成后的链表满足单调不减规则。

    import Class19.ListNode;

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

    static class ListNode{
    int val;
    ListNode next = null;
    ListNode(int val){
    this.val = val;
    }
    }

    //迭代
    public ListNode merge(ListNode list1, ListNode list2){
    if(list1 == null){
    return list2;
    }
    if(list2 == null){
    return list1;
    }
    ListNode newListHead = new ListNode(0);
    ListNode p = newListHead;
    while(list1 != null && list2 != null){
    if(list1.val < list2.val){
    p.next = list1;
    list1 = list1.next;
    }else{
    p.next = list2;
    list2 = list2.next;
    }
    p = p.next;
    }
    if(list1 == null){
    p.next = list2;
    }
    if(list2 == null){
    p.next = list1;
    }
    return p.next;
    }

    //递归
    public ListNode merge2(ListNode list1, ListNode list2){
    if(list1 == null){
    return list2;
    }
    if(list2 == null){
    return list1;
    }
    while(list1 != null && list2 != null){
    if(list1.val < list2.val){
    list1.next = merge2(list1.next,list2);
    return list1;
    }else{
    list2.next = merge2(list1,list2.next);
    return list2;
    }
    }
    }

    public static void main(String[] args) {
    // TODO Auto-generated method stub

    }

    }

  • 相关阅读:
    vim插件管理利器
    Ubuntu下安装java
    Eclipse的vim插件viPlugin的安装
    Ubuntu下如何检查文件的md5,sha-512码
    C语言的工具集
    ubuntu下禁用和恢复触摸板
    linux下开发C语言需要安装的manpages手册
    linux下C++的man文件安装
    源码编译安装git
    EditText属性详解
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12463029.html
Copyright © 2011-2022 走看看