删除链表中倒数第n个节点
2016-04-15 13:56
218 查看
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。
样例:
给出链表1->2->3->4->5->null和 n = 2.
删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.
注意事项
链表中的节点个数大于等于n。特别注意m == n 的情况,实际删除的是头结点。
样例:
给出链表1->2->3->4->5->null和 n = 2.
删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.
注意事项
链表中的节点个数大于等于n。特别注意m == n 的情况,实际删除的是头结点。
/** * Definition of ListNode * class ListNode { * public: * int val; * ListNode *next; * ListNode(int val) { * this->val = val; * this->next = NULL; * } * } */ class Solution { public: /** * @param head: The first node of linked list. * @param n: An integer. * @return: The head of linked list. */ ListNode *removeNthFromEnd(ListNode *head, int n) { // write your code here //int m = head.size();不能用size()函数 ListNode* result = head; ListNode* l1 = head; int m =0; while(head!=NULL){ //计算链表的长度size() head = head->next; m++; } if(m<n) //不存在这种情况 return result; if(m>n){ for(int i =1;i<(m-n);i++){ l1 = l1->next; } l1->next=l1->next->next; return result; } if(m == n){ //当m == n时,实际上删除的是头结点 return result->next; } } };
相关文章推荐
- dhtmlTree简单实例以及基本参数设置
- IQKeyboardManager的使用笔记
- Linux下 JNI的使用
- WPF中关于对前台Xaml中Triggers的一些重要思考。
- 如果在VS2013创建WebService并在IIS中发布
- 科目二:倒车入库考试技巧详细图解
- 一种快速的公交专用车道检测方法
- chrome最小字体12px
- c++ 类的初步总结
- 编程中常用的单词缩写
- Android中JNI的使用方法
- iOS开发中的一些图片上传压缩处理
- Class<T>相比Class的灵活运用
- 总结的一些MySQL数据库面试题
- 为什么大型网站前端使用PHP后台逻辑用Java
- Linux安装配置JDK
- Notes on MatConvNet(II):vl_simplenn
- 241. Different Ways to Add Parentheses
- 算法复习——背包DP问题
- JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分