leecode刷题(21)-- 删除链表的倒数第N个节点
leecode刷题(21)-- 删除链表的倒数第N个节点
删除链表的倒数第N个节点
描述:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
思路:
这道题我们可以采用双指针法来解答。定义两个指针 left 和 right, 都让其指向链表的头节点。先让 right 指针向后移动 n 步,然后 left 指针和 right 一起向后移动,当 right 的 next 指针为 NULL 时,left 指针即指向了要删除节点的前一个节点,接着让 left 的 next 指针指向要删除节点的下一个节点即可。这里我们需要注意的是,如果要删除的节点刚好是头节点,那么 right 指针向后移动结束时就会为 NULL,所以加一个判断其是否为 NULL 的条件,若为 NULL 则返回头节点的 next 指针。
代码如下:
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode left = head;
        ListNode right = head;
        for(int i = 0; i < n; i++) {
            right = right.next;
        }
        if(right == null) {
            return head.next;
        }
        while(right.next != null) {
            left = left.next;
            right = right.next;
        }
        left.next = left.next.next;
        return head;
    }
}
												
											leecode刷题(21)-- 删除链表的倒数第N个节点的更多相关文章
- Leetcode题库——19.删除链表的倒数第 n 个节点【##】
		
@author: ZZQ @software: PyCharm @file: removeNthFromEnd.py @time: 2018/9/26 21:56 说明:给定一个链表,删除链表的倒数第 ...
 - LeetCode第[19]题(Java):Remove Nth Node From End of List(删除链表的倒数第N个节点)
		
题目:删除链表的倒数第N个节点 难度:Medium 题目内容: Given a linked list, remove the n-th node from the end of list and r ...
 - LeetCode 19:删除链表的倒数第N个节点 Remove Nth Node From End of List
		
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. Given a linked list, remove the n-th node from the end of list and ...
 - lintcode:Remove Nth Node From End of Lis 删除链表中倒数第n个节点
		
题目: 删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 样例 给出链表1->2->3->4->5->null和 n = 2. 删除 ...
 - 删除链表的倒数第N个节点(java实现)
		
题目: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链 ...
 - lintcode174 删除链表中倒数第n个节点
		
删除链表中倒数第n个节点 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2 ...
 - 174. 删除链表中倒数第n个节点
		
描述 笔记 数据 评测 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 注意事项 链表中的节点个数大于等于n 您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2-&g ...
 - 【LeetCode】Remove Nth Node From End of List(删除链表的倒数第N个节点)
		
这道题是LeetCode里的第19道题. 题目要求: 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, ...
 - 删除链表中倒数第n个节点
		
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点. 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1 ...
 
随机推荐
- 如何解决JSP页面显示乱码问题
			
一.JSP页面显示乱码 下面的显示JSP页面(display.jsp)就出现乱码: <html> <head> <title>JSP的中文处理</title& ...
 - 检测IE浏览器版本是否过低
			
<script type="text/javascript"> /*判断浏览器版本是否过低*/ $(document).ready(function() {s var ...
 - NodeJs-Linux环境初步
			
1.Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express 可以快速地搭建一个完整功能 ...
 - uvalive 7299 Boggle
			
Boggle is a game in which 16 dice with letters on each side are placed into a 4 × 4 grid. Players th ...
 - realproxy
			
https://msdn.microsoft.com/zh-cn/library/dn574804.aspx
 - 【bzoj1096】仓库建设  斜率优化dp
			
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=1096 [题解] 设输入的三个数组为a,b,c sumb维护b数组的前缀和,sumab维护a ...
 - 118. Pascal's Triangle (Array)
			
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
 - for 续7
			
----------siwuxie095 for 中的变量: FOR 变量参照的替换已被增强.您现在可以使用下列选项语法: ~I - 删除任何引号(" ...
 - set 续2
			
--------siwuxie095 用 set 命令进行字符串处理(这个不应只属于 set 的内容,应该归属于格式内容, 在没有 set 的情况下,格式仍旧适用) ...
 - 使用vim鼠标右键无法粘贴问题解决
			
问题: Debian中通过终端使用vim,无法通过鼠标粘贴.这是由于一项默认的鼠标配置导致. 解决方法: vi /usr/share/vim/vim80/defaults.vim 查找set mous ...