package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * * @param head ListNode类 * @param n int整型 * @return ListNode类 */ func removeNthFromEnd( head *ListNode , n int ) *ListNode { k := n slow := head fast := head res := slow for i := 0; i < k; i++ { if fast == nil { return nil } fast = fast.Next } var pre *ListNode for fast != nil { pre = slow slow = slow.Next fast = fast.Next } if pre != nil { pre.Next = slow.Next } else { res = slow.Next } return res }