Given a linked list, remove the nth node from the end of list and return its head. For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5. Note: Given n will always be valid. Try to do this in one pass.
ListNode fast = head, slow = head; if(head == null){ //链表中两个指针的思想灰常重要,一定要掌握! return null; } while(n != 0){ fast = fast.next; n--; } if(fast == null ){ element is the head //注意特殊情况!!好好想想什么时候要考虑这些边界值 return head.next; } while(fast.next != null){ slow = slow.next; fast = fast.next; } slow.next = slow.next.next; //被删的节点不用清除么?为什么=null会有错