19. Remove Nth Node From End of List
2016-03-09 18:06
471 查看
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同时向后走,当最后一个指针走向尾部时,开始删除,注意删除的是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个元素。n始终有效,要求只能遍历一遍。
思路:用两个指针,间隔n同时向后走,当最后一个指针走向尾部时,开始删除,注意删除的是head结点的情况。
class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { if (n == 0) return head; ListNode *p, *q; p = q = head; while (n--){ q = q->next; } if (q){ while (q->next){ p = p->next; q = q->next; } q = p->next->next; free(p->next); p->next = q; } else{ head = p->next; free(p); } return head; } };
相关文章推荐
- C++与Nodejs的交互
- 【nodejs】服务器处理url请求并返回json数据
- webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器
- Nodejs如何复制文件
- nodejs设置NODE_ENV环境变量
- ztree addNode editName removeNode
- 【JavaScript】ReactJS&NodeJS了解资料
- Leetcode:Swap Nodes in Pairs 单链表相邻两节点逆置
- 19. Remove Nth Node From End of List
- 记 Ubuntu14.04 Monodevelop 安装的两个问题
- nodejs及bigpipe技术初探
- Nodejs模块化
- 为什么我要用 Node.js
- [LeeCode]116. Populating Next Right Pointers in Each Node
- leetcode刷题(19. Remove Nth Node From End of List)
- 利用nodeJs来安装less以及编译less文件为css文件
- 【安装】nodesj的addon模块配置使用&报错处理
- node exprass安装运行实例
- Node.js与Express4安装与配置
- Nodejs后台开发-文章摘录