剑指 Offer 18. 删除链表的节点
func deleteNode(head *ListNode, val int) *ListNode {
dummy := &ListNode{}
dummy.Next = head
cur := dummy
for cur != nil && cur.Next != nil {
if cur.Next.Val == val {
cur.Next = cur.Next.Next
} else {
cur = cur.Next
}
}
return dummy.Next
}
剑指 Offer 22. 链表中倒数第k个节点
func getKthFromEnd(head *ListNode, k int) *ListNode {
slow, fast := head, head
for fast != nil && k > 0 {
k--
fast = fast.Next
}
for fast != nil {
slow = slow.Next
fast = fast.Next
}
return slow
}