题目描述
https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
思路题解
三个指针,ans存头,p存慢的,e存快的。
有个问题就是不用ans直接renturn head会报错。待弄清。
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func removeNthFromEnd(head *ListNode, n int) *ListNode {
ans:=&ListNode{0, head}//必须要用另外的变量存head,不知道为啥
p:=ans
e:=ans
for ;n>0;n--{
e=e.Next
}
for e.Next!=nil{
e=e.Next
p=p.Next
}
// if p.Next==head{
// return p.Next.Next
// }
p.Next=p.Next.Next
return ans.Next
}