S2 icon indicating copy to clipboard operation
S2 copied to clipboard

0092. Reverse Linked List I I | LeetCode Cookbook

Open halfrost opened this issue 4 years ago • 1 comments

https://books.halfrost.com/leetcode/ChapterFour/0001~0099/0092.Reverse-Linked-List-II/

halfrost avatar Feb 15 '21 03:02 halfrost

/**

  • Definition for singly-linked list.

  • type ListNode struct {

  • Val int
    
  • Next *ListNode
    
  • } */ func reverseBetween(head *ListNode, left int, right int) *ListNode { dummyHead := &ListNode{Next: head} pre := dummyHead

    for i := 1; i < left; i++ { pre = pre.Next }

    last := pre.Next for i := left; i <= right; i++ { last = last.Next }

    pre.Next = reverse(pre.Next, last) if dummyHead.Next == head { return head } return pre.Next }

func reverse(first *ListNode, last *ListNode) *ListNode { pre, p := first, first.Next

pre.Next = last
for p != last {
    tmp := pre
    pre = p
    p = p.Next
    pre.Next = tmp
}

return pre

}

hehelv avatar May 15 '22 12:05 hehelv