标签:leetcode remove nth node from
题目链接:https://leetcode.com/problems/remove-nth-node-from-end-of-list/
题目:
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.
解题思路:要求删除倒数第N个数,由于链表的顺序搜索特性。所以改变思想,引用两个链表 L1,L2。L1先顺序搜索N个数,然后L1,L2再一起搜索直到L1到底,删除L2的这个点就行。
class Solution { public: ListNode *removeNthFromEnd(ListNode *head, int n) { ListNode *point = head; ListNode *answers = head; ListNode *change = head; for (int i = 0; i < n; i++) { if (point->next == NULL) return answers->next; point = point->next; } while(point->next != NULL) { head = head->next; point = point->next; } head->next = head->next->next; return answers; } };
LeetCode-Remove Nth Node From End of List
标签:leetcode remove nth node from
原文地址:http://blog.csdn.net/vanish_dust/article/details/44150571