Remove Nth Node From End of List
2015-09-11 11:37
519 查看
【题目描述】Given a linked list, remove the nth node from the end of list and return its 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-1,同时移动两个指针,当后面那个指针移到最后一个的时候,就意味着前面的指针到达了要删除的位置。【代码】
/** * 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* h1=head; ListNode* h2=head; ListNode* pre=NULL; for(int i = 0; i < n - 1; i++) h2 = h2->next; while(h2->next!=NULL){ pre=h1; h1=h1->next; h2=h2->next; } if(pre==NULL){ head=h1->next; delete h1; } else{ pre->next=h1->next; delete h1; } return head; }};
相关文章推荐
- Nodejs课堂笔记-第四课 Dynamodb为何物
- [LeetCode-19] Remove Nth Node From End of List(删除链表中倒数第N个节点)
- 关于node.js中的异步流程控制
- Node.js实现的flash-socket策略服务器
- node.js安装
- (Leetcode)Double pointer to implement delete Linklist node
- Leetcode Remove Nth Node From End of List
- nodejs中间件详解
- Node.js 学习资源
- lightoj 1094 Farthest Nodes in a Tree 【树的直径 裸题】
- 如何用 OneAPM 优化你的 Node.js 应用?
- 如何用 OneAPM 优化你的 Node.js 应用?
- nodejs图片裁剪、缩放、水印
- node.js安装及grunt插件,如何进行脚本压缩
- Intellij IDEA+nodejs router没有post方法
- 创建一个简单的express工程
- Count Complete Tree Nodes -- leetcode
- Reverse Nodes in k-Group
- Swap Nodes in Pairs
- Remove Nth Node From End of List