public ListNode removeNthFromEnd(ListNode head, int n) { ListNode pre = head; int nums = length(head) - n; //用链表的长度减去n得到要删除的节点的位置 if (nums==0){ return head.next; } for (int i = 1; i < nums; i++) { //通过循环 节点.next 得到要删除的节点的前一个 pre =...
ListNode cur = dummy; //获取被删除节点的上一个节点【因为是删除倒数的节点,又因为是链表,所以我们必须从正面来】 for (int i = 1; i < length - n + 1; ++i) { cur = cur.next; } cur.next = cur.next.next; //删除节点 ListNode ans = dummy.next; //返回删除后的头结点链表 return ans...
在走了n步之后,2号指针开始遍历,当1号指针走到尾的时候,2号指针就是距离尾部第n位的元素。