19. Remove Nth Node From End of List
2017-09-12 11:19
330 查看
题目
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.
思路
本题和上一道题目同是链表操作的题目,但是明显比上一掉题目Swap Nodes in Pairs简单,但是小技巧:建立指针头都是不变滴~。具体思路如下:遍历链表,获得结点个数num,根据n找到需要删除的结点,将要删除结点的前一个结点指向要删除的结点的后一个结点。
代码
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode* Head = head; ListNode* helper = new ListNode(0); helper->next = head; ListNode* res = helper; int num=0; while(head) { num++; head = head->next; } int diff = num -n; while(diff) { diff--; helper = helper->next; Head = Head->next; } helper->next = Head->next; return res->next; } };
相关文章推荐
- 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
- 19. Remove Nth Node From End of List
- LeetCode19: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
- 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
- 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
- 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
- 19 Remove Nth Node From End of List