您的位置:首页 > 职场人生

面试题28:单链表一次遍历删除从后往前的第n个节点

2017-05-19 10:51 381 查看
1 class Solution {
2 public:
3     ListNode *removeNthFromEnd(ListNode *head, int n) {
4
5         ListNode* fake = new ListNode(-1);
6         fake->next = head;
7         ListNode* p = fake;
8         while(n >0){
9             p = p->next;
10             n--;
11         }
12
13         ListNode* cur = fake;
14         while(p->next){
15             p = p->next;
16             cur = cur->next;
17         }
18         ListNode* tmp = cur->next;
19         cur->next = cur->next->next;
20         delete tmp;
21
22         return fake->next;
23     }
24 };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: