题目:
给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
解法:
func removeNthFromEnd(head *ListNode, n int) *ListNode {
preTarget := &ListNode{Next:head}
dymmy := preTarget
target := head
node := head
distance := 1
for node != nil && node.Next != nil {
if distance == n {
target = target.Next
preTarget = preTarget.Next
} else {
distance ++
}
node = node.Next
}
preTarget.Next = target.Next
return dymmy.Next
}