19. 删除链表的倒数第N个节点
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
解法一:
设两个快慢指针fast和slow,fast比slow往前走n+1步,然后slow和fast每次向前走1步,这样当fast走到尽头时,slow恰好指向倒数第n+1个结点。指针操作将n+1结点之后的结点(即倒数第n个)删去即可。
边界条件:倒数第1个和倒数第n个(设链表长度为n)。对于第1个,1+1=2,可以到达。对于第n个,n+1>n,超出链表长度。这里用个技巧,在链表头部加一个辅助用的头结点,这样就能解决倒数第n(即正数第一个)的情况。
最后更新于