javascript 单向链表反转 reverse 部分反转

xiaoxiao2025-07-13  7

leetcode:

https://leetcode.com/problems/reverse-linked-list/

/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @return {ListNode} */ var reverseList = function(head) { var prev = null, cur = head, next; while (cur !== null) { next = cur.next; head = cur; cur.next = prev; prev = cur; cur = next; } return head; };

https://leetcode.com/problems/reverse-linked-list-ii/description/

Reverse a linked list from position m to n. Do it in one-pass.

Note: 1 ≤ m ≤ n ≤ length of list.

Example:

Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5->NULL

/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @param {number} m * @param {number} n * @return {ListNode} */ var reverseBetween = function(head, m, n) { if(head === null) return head; if(m===n) return head; var dummy = new ListNode(0), h = dummy; dummy.next = head; for (var i = 0; i < m-1; i++) { h = h.next; } var cur = h.next, last = cur.next; for (i = 0; i < n - m; i++) { cur.next = last.next; last.next = h.next; h.next = last; last = cur.next; } return dummy.next; };

 

 

 

转载请注明原文地址: https://www.6miu.com/read-5033016.html

最新回复(0)