Remove Nth Node From End of List
2015-03-16 10:25 笨笨的老兔子 阅读(135) 评论(0) 收藏 举报去掉一个单链表的倒数第N个节点
思路很简单,两个指针,一个指针提前跑n个节点,然后再一起奔跑,提前跑的那个到达尾部的时候,后面跑的那个指向倒数第n+1节点。
需要注意一些边界:
- 头指针为空
- n大于链表长度
n等于链表长度
class Solution {public:ListNode *removeNthFromEnd(ListNode *head, int n) {if (!head ){return NULL;}ListNode* forward = head;ListNode* back = head;for (int i = 0; i < n ; i++)forward = forward->next;if (!forward){return head->next;}while (forward->next != NULL){forward = forward->next;back = back->next;}back->next = back->next->next;return head;}};
浙公网安备 33010602011771号