19. Remove Nth Node From End of List
2017-09-17 00:00
302 查看
有两种做法,一种是先便利获得size,然后再remove
另一种做法通过快慢指针,之间相差n的gap,之后再进行remove
另一种做法通过快慢指针,之间相差n的gap,之后再进行remove
// normal way to solve class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { if (head == null){ return head; } ListNode dummy = new ListNode(-1); dummy.next = head; ListNode cur = dummy; int length = 0; while(cur.next != null){ length++; cur = cur.next; } length = length - n; cur = dummy; while(length > 0){ length--; cur = cur.next; } cur.next = cur.next.next; return dummy.next; } }
//Two pointer way public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy = new ListNode(0); dummy.next = head; ListNode first = dummy; ListNode second = dummy; // Advances first pointer so that the gap between first and second is n nodes apart for (int i = 1; i <= n + 1; i++) { first = first.next; } // Move first to the end, maintaining the gap while (first != null) { first = first.next; second = second.next; } second.next = second.next.next; return dummy.next; }
相关文章推荐
- [leetcode: Python]19. Remove Nth Node From End of List
- leetcode - 19. Remove Nth Node From End of List
- [LeetCode] 19. Remove Nth Node From End of List
- leetcode 19. Remove Nth Node From End of List
- leetcode 19: Remove Nth Node From End of List
- leetcode[19]Remove Nth Node From End of List
- LeetCode 19. Remove Nth Node From End of List
- leetcode19-Remove Nth Node From End of List
- [LeetCode - 双指针] 19. Remove Nth Node From End of List
- leetcode --19. Remove Nth Node From End of List
- Leetcode 19. Remove Nth Node From End of List
- 19. Remove Nth Node From End of List
- LeetCode-19 Remove Nth Node From End of List(移除尾部第N个节点)
- LeetCode笔记:19. Remove Nth Node From End of List
- 19. Remove Nth Node From End of List。
- 19. Remove Nth Node From End of List
- 19. Remove Nth Node From End of List
- LeetCode | 19. Remove Nth Node From End of List
- leetcode-19-Remove Nth Node From End of List
- LeetCode 19. Remove Nth Node From End of List