首页 > 其他分享 >合并两条有序链表

合并两条有序链表

时间:2022-08-24 23:35:28浏览次数:133  
标签:有序 otherlistHead link2 两条 链表 listHead link1 append

 

用JavaScript实现:

 const link1 = new LinkedList()
        link1.append(1)
        link1.append(3)
        link1.append(4)
        link1.append(6)
        link1.append(7)


        const link2 = new LinkedList()
        link2.append(2)
        link2.append(5)
        link2.append(8)
        link2.append(9)

        function merginlist(list, otherlist) {
            //1、创建新链表
            let newlist = new LinkedList();

            let listHead = list.head
            let otherlistHead = otherlist.head;

            //2、比较
            while (listHead && otherlistHead) {
                if (listHead.data < otherlistHead.data) {
                    newlist.append(listHead.data)
                    listHead = listHead.next
                } else {
                    newlist.append(otherlistHead.data)
                    otherlistHead = otherlistHead.next
                }

            }
            //3.list为空,另一个链表otherlist中的数据依次添加到新链表中
            while (otherlistHead) {
                newlist.append(otherlistHead.data)
                otherlistHead = otherlistHead.next
            }

            // 3.otherlist为空,另一个链表list中的数据依次添加到新链表中
            while (listHead) {
                newlist.append(listHead.data)
                listHead = listHead.next
            }

            return newlist.toString()
        }
                
        console.log(mergerlist(link1, link2));

 

标签:有序,otherlistHead,link2,两条,链表,listHead,link1,append
From: https://www.cnblogs.com/LIXI-/p/16622668.html

相关文章

  • 双链表和循环链表
    一、结构体定义1.双链表typedefstructDLNode{ intdata; structDLNode*prior,*next;}DLNode;2.循环链表//同双链表二、操作1.尾插法建立双链表voidcreat......
  • LeetCode 重排链表算法题解 All In One
    LeetCode重排链表算法题解AllInOnejs/ts实现重排链表重排链表原理图解//快慢指针重排链表https://leetcode.com/problems/reorder-list/https://le......
  • LeetCode 21 合并两个有序链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • LeetCode 142. 环形链表 II
    思路:快慢指针法:当快指针与慢指针相遇时,分别从起点,相遇点开始走,相遇即为环入口/***Definitionforsingly-linkedlist.*structListNode{*intval;*......
  • LeetCode 24. 两两交换链表中的节点
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*List......
  • LeetCode 206. 反转链表
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListN......
  • 链表冒泡排序
    publicListNodesortList(ListNodehead){ListNodeheadpre=newListNode();headpre.next=head;intlength=0;while(head!=null){......
  • 合并两个有序数组
    目录题目描述方法一:解题思路解题代码方法二:解题思路解题代码题目描述题目地址:https://leetcode.cn/problems/merge-sorted-array/题目要求给你两个按非递减顺序排列的......
  • 算法:两个链表的第一个公共节点
    问题输入两个链表,找出它们的第一个公共节点。解决//1、暴力解法classSolution{ListNodegetIntersectionNode(ListNodeheadA,ListNodeheadB){w......
  • 「数据结构与算法」链表 —— 看这一篇就够了(超详细)
     一、链表简介链表是一种物理存储单元上非连续、非顺序的存储结构,数据结构的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点......