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
Difficulty: 中等
Related Topics: 链表
给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
head
left
right
left <= right
示例 1:
输入:head = [1,2,3,4,5], left = 2, right = 4 输出:[1,4,3,2,5]
示例 2:
输入:head = [5], left = 1, right = 1 输出:[5]
提示:
n
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n
进阶: 你可以使用一趟扫描完成反转吗?
Language: JavaScript
/** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @param {number} left * @param {number} right * @return {ListNode} */ var reverseBetween = function(head, left, right) { const dummyNode = new ListNode(-1) dummyNode.next = head // 虚拟节点 let pre = dummyNode for (let i = 0; i < left - 1; i++) { // pre 遍历到left前一个节点 pre = pre.next } let rightNode = pre for (let i = 0; i < right - left + 1; i++) { // rightNode 遍历到right的位置 rightNode = rightNode.next } let leftNode = pre.next // 保存leftNode let curr = rightNode.next // 保存rightNode.next // 切断left到right的子链 pre.next = null rightNode.next = null // 反转left到right的子链 reverseLinkedList(leftNode) // 反转 连接 pre.next = rightNode leftNode.next = curr return dummyNode.next }; const reverseLinkedList = (head) => { let pre = null let cur = head while (cur) { const next = cur.next cur.next = pre pre = cur cur = next } }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
92. 反转链表 II
Description
Difficulty: 中等
Related Topics: 链表
给你单链表的头指针
head
和两个整数left
和right
,其中left <= right
。请你反转从位置left
到位置right
的链表节点,返回 反转后的链表 。示例 1:
示例 2:
提示:
n
1 <= n <= 500
-500 <= Node.val <= 500
1 <= left <= right <= n
进阶: 你可以使用一趟扫描完成反转吗?
Solution
Language: JavaScript
The text was updated successfully, but these errors were encountered: