mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 15:45:40 +08:00
Merge pull request #2458 from lavaicer/master
优化 19. 删除链表的倒数第 N 个结点 go 代码
This commit is contained in:
@ -165,20 +165,17 @@ class Solution:
|
|||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
func removeNthFromEnd(head *ListNode, n int) *ListNode {
|
func removeNthFromEnd(head *ListNode, n int) *ListNode {
|
||||||
dummyHead := &ListNode{}
|
dummyNode := &ListNode{0, head}
|
||||||
dummyHead.Next = head
|
fast, slow := dummyNode, dummyNode
|
||||||
cur := head
|
for i := 0; i <= n; i++ { // 注意<=,否则快指针为空时,慢指针正好在倒数第n个上面
|
||||||
prev := dummyHead
|
fast = fast.Next
|
||||||
i := 1
|
}
|
||||||
for cur != nil {
|
for fast != nil {
|
||||||
cur = cur.Next
|
fast = fast.Next
|
||||||
if i > n {
|
slow = slow.Next
|
||||||
prev = prev.Next
|
}
|
||||||
}
|
slow.Next = slow.Next.Next
|
||||||
i++
|
return dummyNode.Next
|
||||||
}
|
|
||||||
prev.Next = prev.Next.Next
|
|
||||||
return dummyHead.Next
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user