删除链表中倒数第n个节点
时间复杂度要控制在O(n)
Solution:
设置2个指针,一个用于确定删除节点的位置,一个用于计算倒数间距n。移动时保持2个指针同时移动。
public ListNode removeNthFromEnd(ListNode head, int n) { if(head==null) return null; ListNode pre = head; ListNode cur = head; for(int i=0;i<n;++i){ cur = cur.next; if(cur==null) { return head.next; } } while(cur.next!=null){ cur=cur.next; pre= pre.next; } pre.next = pre.next.next; return head; }