We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
头指针与头结点以及首元结点的关系:
问题分析
实现要点
1、设置指针t1遍历L1,指针t2遍历L2,指针Ptr指向合适的结点(在L1中的结点,或者L2中的结点)来构造新的链表L。
代码实现方案一:创建一个新的链表用来存储排列数据, 然后用while循环检测l1和l2中的val值,如果l1.var<=l2.var,那么就让新链表的next指针指向l1的val,,然后改变l1的指针指向并且将l1的下一个值指向l1,依次迭代,反之,如果l1.val>l2.var 那么就让新链表的next指针指向l2的val,,然后改变l2的指针指向并且将l2的下一个值指向l2,依次迭代,直到左右节点迭代完,判断l1是否为空,返回新链表l3.
val
l1.var<=l2.var
next
val,
l1
l1.val>l2.var
l2
l3
<script> function mergeTwoLists(l1, l2) { var l3 = new ListNode(-1); var c3 = l3; while (l1 !== null && l2 !== null) { if (l1.val <= l2.val) { c3.next = l1; l1 = l1.next; } else { c3.next = l2; l2 = l2.next; } c3 = c3.next; } c3.next = (l1 === null) ? l2 : l1; return l3.next; } // 自定义一个链表 function ListNode(val) { this.val = val; this.next = null; } </script>
实现方法二:递归
function mergeTwoLists(l1, l2) { if (l1 = null && l2 == null) { return null; } if (l1 == null) { return l2; } if (l2 == null) { return l1; } if (l1.val < l2.val) { l1.next = mergeTwoLists(l1.next, l2); return l1; } else { l2.next = mergeTwoLists(l1, l2.next); return l2; } }
可以复制以上代码到leetcode-合并连个有序链表进行验证。
欢迎小伙伴评论区提出更好的解决方案,记得点赞👍鼓励下哦!
参考链接:
链表基础知识总结
js实现链表
数据结构——链表
扫一扫下面的二维码,回复学习即可免费领取最新前端学习资料,也希望在前端进阶的路上,我们一起成长,一起进步!
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、啥是链表?
它是一种非固定长度的数据结构,是一种动态存储技术,
它能够根据数据的结构特点和数量使用内存,尤其适用于数据个数可变的数据存储。
二、链表的基本元素有哪些?
头指针与头结点以及首元结点的关系:
三、如何合并两个有序链表?
问题分析
实现要点
1、设置指针t1遍历L1,指针t2遍历L2,指针Ptr指向合适的结点(在L1中的结点,或者L2中的结点)来构造新的链表L。
代码实现方案一:创建一个新的链表用来存储排列数据, 然后用while循环检测l1和l2中的
val
值,如果l1.var<=l2.var
,那么就让新链表的next
指针指向l1的val,
,然后改变l1
的指针指向并且将l1
的下一个值指向l1
,依次迭代,反之,如果l1.val>l2.var
那么就让新链表的next
指针指向l2
的val,
,然后改变l2
的指针指向并且将l2
的下一个值指向l2
,依次迭代,直到左右节点迭代完,判断l1
是否为空,返回新链表l3
.实现方法二:递归
可以复制以上代码到leetcode-合并连个有序链表进行验证。
欢迎小伙伴评论区提出更好的解决方案,记得点赞👍鼓励下哦!
参考链接:
链表基础知识总结
js实现链表
数据结构——链表
The text was updated successfully, but these errors were encountered: