LeetCode#19-删除链表的倒数第N个节点
package shuangzhizhen; /* 19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? */ public class p19 { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode first=pre,second=pre; while (n-->0){ first=first.next; } while(first.next!=null){ first=first.next; second=second.next; } second.next=second.next.next; return pre.next; } } class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }
运行结果: