个人算法成长之路四!!!定期更新一些刷题过程中个人的思路以及理解。有兴趣的朋友们可以互动交流哈~
题目:
leetcode- 206. 反转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入: head = [1,2,3,4,5]
输出: [5,4,3,2,1]
示例 3:
输入: head = []
输出: []
解题思路:
迭代法:
- 定义两个指针: prepre 和 curcur ;prepre 在前 curcur 在后。
- 每次让 prepre 的 nextnext 指向 curcur ,实现一次局部反转
- 局部反转完成之后,prepre 和 curcur 同时往前移动一个位置
- 循环上述过程,直至 prepre 到达链表尾部
var reverseList = function(head) {
let prev = null;
let curr = head;
while (curr) {
const next = curr.next;
curr.next = prev;
prev = curr;
curr = next;
}
return prev;
};