leetcode 206. 反转链表 js实现
2023-09-14 09:07:43 时间
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
示例 1:
输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:
输入:head = [1,2]
输出:[2,1]
示例 3:
输入:head = []
输出:[]
提示:
链表中节点的数目范围是 [0, 5000]
-5000 <= Node.val <= 5000
链接:https://leetcode.cn/problems/reverse-linked-list
迭代法:
复杂度分析
-
时间复杂度:O(n),其中 n 是链表的长度。需要遍历链表一次。
-
空间复杂度:O(1)。
/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @return {ListNode} */ var reverseList = function(head) { if(!head){ return head } // 定义当前节点 等于 head let cur = head; // 定义上一个节点 等于 null let prev = null; // 如果当前节点存在,在进行链表遍历 while(cur){ // 存储当前节点的下一个,因为一会要存为上一个 let temp = cur.next; // 改变当前节点的下一个节点的指向为上一个 cur.next = prev; // 向前推进一步,上一个节点变为当前节点 prev = cur; // 当前节点变为原来当前节点的下一个节点 cur = temp; } // 返回反转后的头节点 return prev; };
相关文章
- LeetCode每日一题-9:替换后的最长重复字符串
- leetcode 258. 各位相加 js 实现
- js书写原生ajax,JS 原生ajax写法
- LeetCode笔记:Weekly Contest 307
- 老梁你居然说刷LeetCode Easy找不到工作,你一定没做过Java
- LeetCode每日一题06-16
- leetcode-792匹配子序列的单词数(桶)
- LeetCode 刷题笔记——day 1
- leetcode-142. 环形链表 II
- JavaScript刷LeetCode拿offer-js版字典
- Leetcode模块训练1
- 【刷题day06】力扣(LeetCode)每日一刷[21. 合并两个有序链表][206. 反转链表 ][392. 判断子序列]
- leetcode 54. 螺旋矩阵 js高效实现
- JavaScript刷LeetCode拿offer-js版字典_2023-02-28
- JavaScript刷LeetCode拿offer-链表篇
- 原生 JS 实现 HTML 转 Markdown,以及其实现逻辑(html2md.js 或 html2markdown.js)
- 数据JS技术实现实时获取Oracle数据(js实时获取oracle)
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- Oracle中JS的优势让数据库性能提升(oracle中 js)
- js对象之JS入门之Array对象操作小结
- js延迟加载改变JS的位置加快网页加载速度