【切图仔的算法修炼之旅】LeetCode206:反转链表

简介: 【切图仔的算法修炼之旅】LeetCode206:反转链表

一、题目描述


给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。


示例1:



e7c08c3ba94e41f7b94583ec57ed3c35_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


输入: head = [1,2,3,4,5]
输出: [5,4,3,2,1]
复制代码


示例2:


6fe898027e804d21b0b963a5504f4f8a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


输入: head = [1,2]
输出: [2,1]
复制代码


提示:


  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000


二、思路分析


这一道题目本身没有思维上的难度,我们只需要将每一个节点的next指到它的前驱结点去即可


这里考察的并不是你的思维能力,它主要考察的是你的代码的实现能力,关键一点是我们需要两个指针来记录,一个是记录了当前节点(cur),还有一个记录的是前面的节点(prev)。我们首先需要把cur节点设置为head,然后将prev设置为空,因为一开始是空,然后我们需要不断循环更新cur,直到链表结束,返回prev节点即可。


三、AC代码


/**
 * @param {ListNode} head
 * @return {ListNode}
 */
let reverseList = function (head) {
  let cur, prev;
  [cur, prev] = [head, null]; 
  while (cur) {
    [cur.next, prev, cur] = [prev, cur, cur.next];// ES6结构赋值交换变量
  }
  return prev;
};
复制代码


四、总结


这题在思维上没有什么难度,但是对我们的代码实现能力的要求比较高,你可能紧张一不小心就写错了,或写出十几行的代码,不够简洁,所以我们要加强链表题目的代码实现能力!把链表相关常用的语句记住即可~

相关文章
|
3月前
【力扣】-- 移除链表元素
【力扣】-- 移除链表元素
40 1
|
3月前
|
算法
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
【❤️算法笔记❤️】-每日一刷-19、删除链表的倒数第 N个结点
80 1
|
3月前
|
算法 索引
❤️算法笔记❤️-(每日一刷-141、环形链表)
❤️算法笔记❤️-(每日一刷-141、环形链表)
54 0
|
3月前
|
算法
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
【❤️算法笔记❤️】-(每日一刷-876、单链表的中点)
55 0
|
3月前
|
算法
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
【❤️算法笔记❤️】-每日一刷-23、合并 K 个升序链表
36 0
|
3月前
|
存储 算法
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
【❤️算法笔记❤️】-每日一刷-21、合并两个有序链表
117 0
|
2月前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
|
2月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习之单双链表精题详解(9)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
2月前
|
存储 Web App开发 算法
2024重生之回溯数据结构与算法系列学习之单双链表【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构之单双链表按位、值查找;[前后]插入;删除指定节点;求表长、静态链表等代码及具体思路详解步骤;举例说明、注意点及常见报错问题所对应的解决方法
|
3月前
|
算法
每日一道算法题(Leetcode 20)
每日一道算法题(Leetcode 20)
36 2