题解 | #删除链表的倒数第n个节点#
删除链表的倒数第n个节点
http://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6
双指针
pre靠前,qtr靠后。当qtr到末尾,pre的下一个元素即为需要删除元素。
为了保证操作统一,需要加入一个虚拟节点。
public ListNode removeNthFromEnd (ListNode head, int n) { // write code here ListNode dummyNode = new ListNode(0); dummyNode.next = head; ListNode pre = dummyNode, qtr = dummyNode; while(qtr != null && n > 0){ qtr = qtr.next; n--; } while(qtr != null && qtr.next != null){ pre = pre.next; qtr = qtr.next; } pre.next = pre.next.next; return dummyNode.next; }