1:题目地址
Remove Nth Node From End of List
2:解题思路
可以用Map实现,也可以用快慢指针实现
3:Java代码
public ListNode removeNthFromEnd4(ListNode head, int n) {ListNode dummy = new ListNode(0);dummy.next = head;ListNode first = dummy;ListNode second = dummy;for (int i = 1; i <= n + 1; i++) {first = first.next;}while (first != null) {first = first.next;second = second.next;}second.next = second.next.next;return dummy.next;}
4: Go代码
func removeNthFromEnd(head *ListNode, n int) *ListNode {dummy := new(ListNode)dummy.Next = head//倒数第N个节点的前一个节点preN := dummy//记录遍历次数i := 1for head != nil {if i > n {preN = preN.Next}head = head.Nexti++}//跨过倒数第N个节点preN.Next = preN.Next.Next//返回链表的头结点return dummy.Next}
