合并两个有序链表

问题描述

leetcode 21, Merge Two Sorted Lists

解题思路

  1. 非递归解法,l1,l2两个节点依次往后延升,并且不断的进行节点大小的判断。
     1      ListNode dummy = new ListNode(-1);
     2         /* 首先找出合并后的头节点 dummy.next
     3         if (l1==null && l2!=null) { return l2;}
     4         if (l2==null && l1!=null) { return l1;}
     5         if (l1==null && l2==null) { return null;}
     6         dummy.next = l1.val <= l2.val? l1:l2;
     7         ListNode pNode = new ListNode(0); */
     8         // 利用pNode节点进行大小的比较和后延
     9         ListNode pNode = dummy;
    10         while (l1 != null && l2 != null) {
    11             if (l1.val <= l2.val) {
    12                 pNode.next = l1;
    13                 l1 = l1.next;
    14             } else {
    15                 pNode.next = l2;
    16                 l2 = l2.next;
    17             }
    18             pNode = pNode.next;
    19         }
    20         if (l1 != null)
    21             pNode.next = l1;
    22         if (l2 != null)
    23             pNode.next = l2;
    24 
    25         return dummy.next  

     

posted @ 2019-06-04 10:54  LimLee  阅读(219)  评论(0编辑  收藏  举报