19 Remove Nth Node From End of List(去掉链表中倒数第n个节点Easy)
2015-06-14 15:27
615 查看
题目意思:去掉链表中倒数第n个节点
思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了
2.一次遍历,两个指针,用指针间的距离去计算。
ps:特别注意删掉第一个节点的情况,在前面加个头结点,则变为了删除第二个节点的情况
思路:1.两次遍历,没什么技术含量,第一次遍历计算长度,第二次遍历找到倒数第k个,代码不写了
2.一次遍历,两个指针,用指针间的距离去计算。
ps:特别注意删掉第一个节点的情况,在前面加个头结点,则变为了删除第二个节点的情况
/** * 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) { if(head==NULL||n==0)return NULL; ListNode* ans=new ListNode(0); ans->next=head; //加了一个头结点 ListNode *p1,*p2; p1=p2=ans; for(int i=0;i<n;++i){ //p2指向第n+1个节点 p2=p2->next; } while(p2->next){ //p2指向最后一个,p1指向倒数第n-1个 p2=p2->next; p1=p1->next; } p1->next=p1->next->next; //删掉倒数第n个节点 return ans->next; } };
相关文章推荐
- 一晚上 -- Populating Next Right Pointers in Each Node II
- [Node.js] 对称加密、公钥加密和RSA
- Node.js学习--基础知识(4)--模块与包
- Node.js学习--基础知识(3)--回调函数与事件
- node.js 初体验
- Node.js学习--基础知识(2)--异步IO与事件式编程
- LeetCode 24:Swap Nodes in Pairs
- Nodejs部署再思考
- nodejs中express安装失败解决方法
- 深入浅出NodeJS笔记(一)
- Swap Nodes in Pairs
- LeetCode 之 Remove Nth Node From End of List — C++ 实现
- Count Complete Tree Nodes
- 24-m-Swap Nodes in Pairs
- Leetcode: Reverse Nodes in k-Group
- node.js发送邮件
- leetCode:Count Complete Tree Nodes
- Leetcode: Swap Nodes in Pairs
- 在Visual Studio 2013 上开发Node.js程序
- Populating Next Right Pointers in Each Node II