leetcode 19. Remove Nth Node From End of List
2016-02-28 20:40
381 查看
题意
删除单链表中倒数第n个元素题解
先计算链表长度len,倒数第n个元素等于正向第len - n + 1个元素。(由于第一次循环时iter指向第二个元素,所以只需循环len-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) { if (head == NULL) return NULL; int len = 0; ListNode *iter = head; while (iter != NULL) iter = iter->next, len++; int nth = len - n; int index = 0; ListNode *pre = NULL; iter = head; while (index < nth) { pre = iter; iter = iter->next;//loop times:nth-1 = len-n index++; } if (iter == head) return head->next; else { pre->next = iter->next; return head; } } };
相关文章推荐
- node.js发送邮件email
- node.js定时事务node-schedule
- namenode两次格式化的问题
- 让nodejs应用后台执行:forever
- node.js实现图片验证码
- node.js获取RSS返回json
- node.js入门教程
- Hadoop2.6DataNode服务未启动
- nodejs request & response 对象
- 【leetcode】【19】Remove Nth Node From End of List
- NodeJS的代码调试和性能调优
- node.js抓取网上图片保存到本地
- nodejs json对象与C/C++二进制数据转换
- Node.js中async的简单使用
- anywhere 把目录变静态文件服务器
- 《leetCode》:Populating Next Right Pointers in Each Node II
- 《leetCode》:Populating Next Right Pointers in Each Node
- node.js之EJS
- Node.js内存泄漏分析
- ESP8266(二)NODEMCU——烧录固件