【leetcode】Remove Nth Node From End of List(easy)
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.
思路:
最基本的思路肯定是用两个指针,一个先走n+1步,然后再两个同时走,这样后走的指针一定是在要删除指针的前一格。
问题主要是如果要删除的是头结点,走到n步的时候肯定就NULL了,所以要加个判断,如果在没有走完n+1步时遇到了 先走指针指向NULL,则返回head->next
唉,就这一点一点逻辑关系晕了好久。要先分析清楚再做题,不要每次都只是靠感觉...感觉在这种边界条件时特别的不靠谱...
ListNode *removeNthFromEnd(ListNode *head, int n) {
        ListNode * p1 = head, * p2 = head;
        n++;
        while(n--) //p1先走n+1步
        {
            p1 = p1->next;
            if(p1 == NULL && n != ) //遇到删除头指针情况
                return head->next;
        }
        while(p1 != NULL) //p1走到头时, p2正好在要删除的指针前面
        {
            p1 = p1->next;
            p2 = p2->next;
        }
        p2->next = p2->next->next; //删除指定指针
        return head;
    }
【leetcode】Remove Nth Node From End of List(easy)的更多相关文章
- 【leetcode】Remove Nth Node From End of List
		题目简述: Given a linked list, remove the nth node from the end of list and return its head. For example ... 
- leetcode 19. Remove Nth Node From End of List(链表)
		Given a linked list, remove the nth node from the end of list and return its head. For example, Give ... 
- 【LeetCode】Remove Nth Node From End of List(删除链表的倒数第N个节点)
		这道题是LeetCode里的第19道题. 题目要求: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, ... 
- 【leetcode】Remove Duplicates from Sorted Array I & II(middle)
		Given a sorted array, remove the duplicates in place such that each element appear only once and ret ... 
- leetcode 之Remove Nth Node From End of List(19)
		这题比较简单,方法有很多.其中一种比较有意思的做法是设置两个指针,一个先走n步,然后再一起走.一个到了末尾,另一个也就确定了要删除元素的位置. ListNode *removeNthFromEnd(L ... 
- 【LeetCode】802. Find Eventual Safe States 解题报告(Python)
		[LeetCode]802. Find Eventual Safe States 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemi ... 
- 【LeetCode】449. Serialize and Deserialize BST 解题报告(Python)
		[LeetCode]449. Serialize and Deserialize BST 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/pro ... 
- 【LeetCode】222. Count Complete Tree Nodes 解题报告(Python)
		[LeetCode]222. Count Complete Tree Nodes 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个 ... 
- 【LeetCode】99. Recover Binary Search Tree 解题报告(Python)
		[LeetCode]99. Recover Binary Search Tree 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/p ... 
随机推荐
- WP8.1下 Cortana语音命令 VCD文件 设计
			Windows Phone8.1下的Cortana,可以通过语音的方式,打开.设置应用,进行页面跳转.执行任务. 我们先要创建VCD(VoiceCommand.xml)文件 <?xml vers ... 
- 2013长沙邀请赛A So Easy!(矩阵快速幂,共轭)
			So Easy! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ... 
- 使用批处理(bat)脚本对目录树下同种性质的目录或文件进行处理
			问题起源:每次从svn管理的目录下面复制目录之后里面总是有很多.svn的目录,虽说不影响使用但看着很碍眼.同时自己也懒得使用svn的export功能. 因此一个简单的批处理脚本可以帮助我们搞定一切,当 ... 
- Redis的一些坑
			转载请注明出处哈:http://carlosfu.iteye.com/blog/2254154 上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团 ... 
- VS2013 Community配置OpenCV3.0.0
			配置环境:32位win7系统+VS2013 Community版本 1.首先从OpenCV官网上下载最新版本的OpenCV for Windows. 2.直接双击打开下载得到的opencv-3.0.0 ... 
- js计算24点
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- python 数据结构 初学时没太注意却发现很有用的点点滴滴
			1. list.extend(L) 将指定列表中的所有元素附加到另一个列表的末尾:相当于a[len(a):] = L. 2. list.pop([i]) 删除列表中指定位置的元素并返回它.如果未指定索 ... 
- 用js判断页面是否加载完毕
			用document.onreadystatechange的方法来监听状态改变, 然后用document.readyState == "complete"判断是否加载完成 docum ... 
- laravel打印sql语句
			打印sql语句,直接在你执行SQL语句后输出 方法一: $queries = DB::getQueryLog(); $a = end($queries); $tmp = str_replace('?' ... 
- OpenCV图像的缩放
			函数介绍: 1.cvResize 改变图像大小 void cvResize(const CvArr *src, CvArr *dst, int interpolation) 函数说 ... 
