LeetCode OJ:Remove Nth Node From End of List(倒序移除List中的元素)
2015-11-03 21:09
609 查看
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Note:
Given n will always be valid.
Try to do this in one pass.
只能走一遍,要求移除倒着数的第n个元素,开始想用递归做,但是一直失败,没办法看了一下别人的答案,如果总数为N那么倒着第n个相当于正着第N-n个,N的计数通过一次遍历计数即相对的可以得到,代码如下:
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个元素,开始想用递归做,但是一直失败,没办法看了一下别人的答案,如果总数为N那么倒着第n个相当于正着第N-n个,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 * p, * q, * pPre; pPre = NULL; p = q = head; while(--n > 0) q = q->next; while(q->next){ pPre = p; p = p->next; q = q->next; } if(pPre == NULL){ head = p->next; delete p; }else{ pPre->next = p->next; delete p; } return head; } };
相关文章推荐
- node.js+mysql把数据显示到前端简单实例
- leetcode-Delete Node in a Linked List
- nodejs
- ubuntu 开发环境配置及安装 nodejs
- ubuntu 开发环境配置及安装 nodejs
- node.js 中createConnection参数说明
- Node开发项目管理工具 Grunt 对比 Gulp
- Node.js入门
- node express
- LeetCode--Delete Node in a Linked List
- [美国VPS]Ramnode测试
- node.js创建并引用模块
- NodeJS 模块开发及发布详解分享
- 如何发布Node模块到NPM社区
- LeetCode Delete Node in a Linked List 链表
- LeetCode Count Complete Tree Nodes 二叉树
- 《leetCode》:Remove Nth Node From End of List
- 搭建Windows Node.js环境
- Node.js中处理异步编程(使用回调处理一次性事件,使用事件监听器处理重复性事件)
- 节点的nodeName与nodeValue