当前位置:   article > 正文

Java删除链表第n个节点,leetcode 19. 删除链表的倒数第N个节点 JAVA

java单向链表删除节点为p.next=p.next.next

题目:

给定一个链表,删除链表的倒数第 n个节点,并且返回链表的头结点。

示例:

给定一个链表: 1->2->3->4->5, 和 n = 2.

当删除了倒数第二个节点后,链表变为 1->2->3->5.

说明:

给定的 n 保证是有效的。

解题思路:

使用两个节点,一个是p一个是q。先让p走n步,然后再让p和q同时往前走,当p走到头时,q即是倒数第n+1个节点了。令p.next = p.next.next则删除了倒数第n个结点

但有两种特殊情况:1.链表长度小于n,则返回原链表

2.链表长度为n,则返回head.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 p = head;

int i;

for(i = 0; i < n; i++) //用于判断链表长度

{

p = p.next;

if(p == null)

break;

}

if(i == n - 1 && p ==null) //链表长度为n时,删除头结点

return head.next;

if(i < n - 1 && p == null) //如果链表长度小于n,则返回原链表

return head;

ListNode q = head;

while(p.next != null)

{

p = p.next;

q = q.next;

}

q.next = q.next.next;

return head;

}

}

Java实现 LeetCode 19删除链表的倒数第N个节点

19. 删除链表的倒数第N个节点 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当 ...

LeetCode 19——删除链表的倒数第N个节点(JAVA)

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...

[LeetCode] 19. 删除链表的倒数第N个节点

题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题目描述: 给定一个链表,删除链表的倒数第 n 个节点, ...

LeetCode 19——删除链表的倒数第 N 个节点

1. 题目 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后 ...

[LeetCode] 19. 删除链表的倒数第N个节点 ☆☆☆

描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表 ...

LeetCode 19. 删除链表的倒数第N个节点(Remove Nth Node From End Of List)

题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后, ...

LeetCode 19.删除链表的倒数第N个节点(Python)

题目:    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点 ...

LeetCode 19 - 删除链表的倒数第N个节点 - [链表]

题目链接:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题解: 两个 $p,q$ 指针均指向头,然后 $q$ 先 ...

19. 删除链表的倒数第N个节点

19. 删除链表的倒数第N个节点 题意 删除链表的倒数第N个结点 解题思路 先让快结点移动n个位置,接着再让慢结点和快结点同时移动,发现出慢结点就是要删除的结点,将前结点指向删除结点的下一个结点即可: ...

随机推荐

openstack学习(一)kvm-libvirt

准备工作: 操作系统:ubuntu 16.04 安装KVM Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的 ...

php优点

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写.PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本 ...

html5 datalist自动完成

1.传统输入框 Favorite Team:

mysql管理(一)

创建数据库,并指定默认字符集和排序规则:help create database;create {database|schema} [if not exists] db_name [character ...

paip.mysql 5.6 安装总结

paip.mysql 5.6 安装总结 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn.net/atti ...

libvirt-adabddad

kvm i686  libvirtError: internal error cannot load AppArmor profile 'libvirt-adabddad-35ba-b9ca-e250 ...

【javascript】jquery jsonp跨越请求

[转]Python多线程与多线程中join()的用法

https://www.cnblogs.com/cnkai/p/7504980.html Python多线程与多进程中join()方法的效果是相同的. 下面仅以多线程为例: 首先需要明确几个概念: 知 ...

zabbix之自动发现Tomcat多实例(第一种:已经部署完成,后续不再添加;第二种:后续或根据需要添加Tomcat实例)

单一实例手动部署:https://www.cnblogs.com/huangyanqi/p/8522526.html 注释:参考的一位博主的博客后续做的修改,那个博主的网址找不到了!!!! 背景: 1 ...

web项目中classPath指的是哪里?

classpath可以是SRC下面的路径 但是项目最终编译会到WEB-INF下面,所以有时候WEB-INF下面的classes也可以放配置文件,也可以读取到. 因为最终src都会放到WEB-INF下面 ...

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/990722
推荐阅读
相关标签
  

闽ICP备14008679号