给定一个链表,删除链表的倒数第 n 个节点并返回链表的头指针
例如,
例如,
给出的链表为:
,
.
删除了链表的倒数第
个节点之后,链表变为
.
删除了链表的倒数第
数据范围: 链表长度
,链表中任意节点的值满足
要求:空间复杂度
,时间复杂度 )
备注:
备注:
题目保证
一定是有效的
func removeNthFromEnd( head *ListNode , n int ) *ListNode {
// write code here
var (
fast *ListNode = head
slow *ListNode = head
pre *ListNode
)
// if n <=0 {
// return head
// }
for i:= 0 ; i < n-1 ; i++{
fast = fast.Next
// if fast.Next == nil{
// break
// }
}
for fast.Next != nil {
pre = slow
slow = slow.Next
fast = fast.Next
}
if pre == nil {
return head.Next
}else{
pre.Next = slow.Next
}
return head
}