【路飞】 leetcode 92. 反转链表 II js解法

163 阅读1分钟

题目:给你单链表的头指针 head 和两个整数 left 和 right ,其中 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  

解法:

var current = head
  var stack = []
  var count = 1
  while(current) {
    if (m <= count && count <= n) {
      stack.push(current.val)
    }
    count++
    current = current.next
  }
  var current2 = head
  count = 1
  while(current2) {
    if (m <= count && count <= n) {
        var val = stack.pop();
        console.log('stack.pop()',val)
      current2.val = val
            console.log('head',head)
    }
    count++
    current2 = current2.next
  }
  return head
}