码迷,mamicode.com
首页 > 其他好文 > 详细

链表合并(反思自己的链表学习!!!!)

时间:2020-03-16 12:49:13      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:学习   商业   break   get   bin   ||   problems   com   操作   

1:题目描述

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

示例1:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2:题目分析

  首先注意链表和数组的区别,在对数组操作时,如果不想再原本的数组上操作,则必须new一个新的数组空间。而链表则只需要增加增加一个head就可以了。

本题的解决思路如下;

  1. 初始化curL1Node和curL2Node指向两个带合并的链表head,新建一个newHead节点。
  2. 比较curL1Node和curL2Node,将小者移到newHead后。
  3. 小者后移一位。
  4. 重复2-3,直到其中有一个null。
  5. 将不为null的链表置于newHead后
  6. return newHead.next即可

在原始的链表上操作容易混乱,所以最好新建一个newHead节点,用来将节点移到这里容易表示。

3:代码示例

class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode curL1Node = l1;
        ListNode curL2Node = l2;

        ListNode newHead = new ListNode(0);
        ListNode curNewNode = newHead;


        while (true) {
            //l1或l2遍历完后,则结束。
            if (curL1Node == null || curL2Node == null) {
                break;
            } else {
                //curL1Node.val和curL2Node.val
                //则较小节点放在newHead后。
                if (curL1Node.val <= curL2Node.val) {
                    curNewNode.next = curL1Node;
                    //较小节点后移
                    curL1Node = curL1Node.next;
                } else {
                    curNewNode.next = curL2Node;
                    //较小节点后移
                    curL2Node = curL2Node.next;
                }
                //newHead节点后移
                curNewNode = curNewNode.next;
            }
        }
        //一旦退出循环,则意味着有链表已经为null,
        // 将不为null都移到newHead后面
        if(curL1Node!=null){
            curNewNode.next = curL1Node;
        }
        if(curL2Node!=null){
            curNewNode.next = curL2Node;
        }
        return newHead.next;
    }
}

 

链表合并(反思自己的链表学习!!!!)

标签:学习   商业   break   get   bin   ||   problems   com   操作   

原文地址:https://www.cnblogs.com/dazhu123/p/12502998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!