leetcode

19. Remove Nth Node From End of

2019-03-22  本文已影响3人  AnakinSun

快慢指针,快指针先前进n步,然后两个指针一起前进,当快指针走到末尾的时候,慢指针所在的位置,就是目标位置
需要注意判断空节点情况

func removeNthFromEnd(head *ListNode, n int) *ListNode {
   cur := head
   last := head
   for i := 0; i < n; i++ {
       if cur.Next != nil {
           cur = cur.Next
       } else {
           return head.Next
       }
   }
   for cur.Next != nil {
       cur = cur.Next
       last = last.Next
   }
   last.Next = last.Next.Next
   return head
}
上一篇 下一篇

猜你喜欢

热点阅读