博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Remove Nth Node From End of List
阅读量:6072 次
发布时间:2019-06-20

本文共 1086 字,大约阅读时间需要 3 分钟。

题目:

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.

 

  

 

主要思想:

首先,为链表添加头指针,添加一个头指针fakeHead,fakeHead.next=head,然后head=fakeHead。结果如下图所示:

 

然后,创建一个走的快的指针fast,指向head.next。结果如下图所示:

 

此时,我们以n=2为例,说明运行过程。让fast指针往前走n=2个节点。结果如下图所示:

最后,让head和fast指针一起往前走,当fast指针走到最后时,head指针后面还有n个节点未走完。结果如下图所示:

此时,head.next就是倒数第n=2个节点。

 

java代码如下

public class RemoveNthNodeFromEndofList {	public static void main(String[] args) {		ListNode ln1= new ListNode(1);		ListNode ln2= new ListNode(2);		ln1.next=ln2;		ln2.next=null;		System.out.println(removeNthFromEnd(ln1,1).toString());	}	public static ListNode removeNthFromEnd(ListNode head, int n) {		ListNode fakeHead= new ListNode(-1);//创建一个虚拟的头结点		fakeHead.next = head;		head=fakeHead;//为head添加头节点		/**		 * 创建一个走的快的指针,比head指针快n个节点		 * */		ListNode fast=head;		for(int i=0;i

  

转载于:https://www.cnblogs.com/lixiaolun/p/4903741.html

你可能感兴趣的文章
Android——NDK基础概念——Application.mk文件介绍
查看>>
centos 下安装nginx
查看>>
一个mysql多列索引的问题
查看>>
Jsp乱码问题
查看>>
C#根据IP地址和子网掩码计算广播地址
查看>>
EasyExcel使用记录
查看>>
Cloudify源码解读
查看>>
无锡格瑞驰车业 ipad做汽车导航
查看>>
C Primer Plus 第5章 运算符、表达式和语句 5.3 其他运算符
查看>>
Swift 和 Objective-C 混编后对ipa包大小的影响
查看>>
通用户权限管理设计_Index
查看>>
Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
查看>>
如何给VSFTP增加用户,只能访问指定目录
查看>>
http 错误代码表
查看>>
phalcon使用namespace
查看>>
centos5.8 安装tomcat7、solr4.9
查看>>
Openbiz Cubi 快速应用开发向导
查看>>
mysql 从一个表中查数据,插入另一个表
查看>>
ios8新特性屏幕适配之sizeclass
查看>>
pcDuino安装USB声卡实现放歌和录音功能
查看>>