[LeetCode] Remove Nth Node From End of List
2014-05-03 18:28
429 查看
链表问题。这种问题主要是指针的操作,需要细心一点,另外这个问题的附加条件是只遍历一次。参考了讨论里面的解答才做出来的。首先用一个先驱指针先前进n步,然后先驱和后继同时前进,等先驱遇到null的时候,后继指针就到了该删除节点的地方了。如果先驱指针前进n步后已经到达null,那直接把head往后指一个节点就行了。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode temp = head; ListNode pioneer = head; while (pioneer != null) { if (--n >= 0) { pioneer = pioneer.next; if (pioneer == null) { head = head.next; } } else { if (pioneer.next == null) { temp.next = temp.next.next; break; } else { temp = temp.next; pioneer = pioneer.next; } } } return head; } }
相关文章推荐
- 【leetcode】19. Remove Nth Node From End of List
- Leetcode:19. Remove Nth Node From End of List
- [leetcode]40 Remove Nth Node From End of List
- Leetcode_19:Remove Nth Node From End of List
- LeetCode - Remove Nth Node From End of List
- LeetCode 019 Remove Nth Node From End of List
- LeetCode --- Remove Nth Node From End of List
- Leetcode: Remove Nth Node From End of List
- [Leetcode19] Remove Nth Node From End of List
- Remove Nth Node From End of List_Leetcode_#19
- leetcode-19 Remove Nth Node From End of List
- LeetCode Exercise 8: Remove Nth Node From End of List
- [LeetCode] Remove Nth Node From End of List 解题报告
- leetCode---Remove Nth Node From End of List
- leetcode--19. Remove Nth Node From End of List
- Leetcode NO.19 Remove Nth Node From End of List
- LeetCode--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