zoukankan      html  css  js  c++  java
  • 21. 合并两个有序链表

    题目链接:https://leetcode.com/problems/merge-two-sorted-lists/

    解题思路:

    合并两个有序的链表,非递归

    先定义一个空链表,merge指向头指针。

    判定l1.val 和 l2.val的大小,取小的merge.next = l1,然后merge要指向下一个指针,l1也要向后挪动一个。

    因为merge要动,所以必须要保证一个不动,返回的时候就是head.next。

     1 /**
     2  * Definition for singly-linked list.
     3  * public class ListNode {
     4  *     int val;
     5  *     ListNode next;
     6  *     ListNode(int x) { val = x; }
     7  * }
     8  */
     9 class Solution {
    10     public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    11         
    12         if(l1==null)
    13             return l2;
    14         if(l2==null)
    15             return l1;
    16         
    17         ListNode head = new ListNode(-1);
    18         ListNode merge = head;
    19         
    20         while(l1!=null&&l2!=null)
    21         {
    22             if(l1.val<l2.val)
    23             {
    24                 merge.next =l1;
    25                 merge = merge.next;
    26                 l1 = l1.next;
    27             }
    28             else
    29             {
    30                 merge.next = l2;
    31                 merge = merge.next;
    32                 l2 = l2.next;
    33             }
    34         }
    35         if(l1!=null)
    36         {
    37             merge.next = l1;
    38         }
    39         if(l2!=null)
    40         {
    41             merge.next = l2;
    42         }
    43         return head.next;
    44         
    45     }
    46 }
  • 相关阅读:
    python第一课
    go反射----4构建
    go反射----3方法
    go反射----2值
    go生成xml
    go互斥锁Mutex
    go中的读写锁RWMutex
    go语言调用cmd
    go语言发送邮件
    go语言文件操作
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10828705.html
Copyright © 2011-2022 走看看