单链表的反转
输入一个链表,反转链表后,输出链表的所有元素。
思路:从表头向后进行迭代,每次迭代时,将当前迭代的元素缓存起来(放在一个变量中),往后迭代时把上次缓存的结果放到当前迭代元素的下一个结点元素中(next
)。(第一次迭代时的下一个结点元素为 null
,也就是反转后的链表尾部结点)
如下图:
function reverse(node) { let next; let pre = null; // 上一次迭代的结果 初始值为 null while(node) { let next = node.next; node.next = pre; // reverse pre = node; // 每次迭代的结果 node = next; } return pre; } reverse({val:1}); reverse({val:1,next:{val:2,next: {val:3}}})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论