当前位置: 首页 > article >正文

Go语言每日一题——链表篇(七)

传送门

牛客面试笔试必刷101题 ----------------删除链表的倒数第n个节点

题目以及解析

题目

在这里插入图片描述

解题代码及解析

解析

这一道题与昨天的题目在解题思路上有一定的相似之处,都是基于双指针定义快慢指针,这里我们让快指针先走n步,又因为n一定为有效值,所以快指针为空时,慢指针刚好离快指针n个单位距离,即链表的倒数第n个节点

代码

package main

import _ "fmt"
import . "nc_tools"

/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param head ListNode类
 * @param n int整型
 * @return ListNode类
 */
func removeNthFromEnd(head *ListNode, n int) *ListNode {
	fast := head
	slow := head
	for i := 0; i < n+1; i++ {
		if fast == nil {
			return head.Next
		}
		fast = fast.Next
	}
	for fast != nil {
		slow = slow.Next
		fast = fast.Next
	}
	slow.Next = slow.Next.Next
	return head
}

总结:

这题依旧是一道链表题,但是它很好的体现双指针思想的引用,大家可以简单的思考一下,用这道题来作为双指针算法的练手题


http://www.kler.cn/a/233873.html

相关文章:

  • influxDB 时序数据库安装 flux语法 restful接口 nodjsAPI
  • jmeter常用配置元件介绍总结之定时器
  • 字符及字符串(ASCII编码系统)
  • pip3 install -e .[stable]讲解
  • LLMs之Code:Github Spark的简介、安装和使用方法、案例应用之详细攻略
  • 【juc】AbstractQueuedSynchronized为什么采用双向链表
  • ANSI Escape Sequence 下落的方块
  • Stable Diffusion 模型下载:ToonYou(平涂卡通)
  • python实现k路归并排序
  • 在gtkmm4 中检索子控件 (children)
  • 人工智能|深度学习——使用多层级注意力机制和keras实现问题分类
  • 70.SpringMVC怎么和AJAX相互调用的?
  • 【c++】c++入门(上)
  • 〖大前端 - ES6篇②〗- let和const
  • 11.2 OpenGL可编程顶点处理:细分着色器
  • webgis后端安卓系统部署攻略
  • 【数据分享】1929-2023年全球站点的逐月平均降水量(Shp\Excel\免费获取)
  • 数据结构红黑树
  • 分布式搜索引擎 elasticsearch
  • MySQL-视图(VIEW)
  • 基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)
  • 【数据结构】双向链表(链表实现+测试+原码)
  • 练习:鼠标类设计之1_类内容解析
  • JVM-双亲委派机制
  • 一步步建立一个C#项目(连续读取S7-1200PLC数据)
  • 监控概述、安装zabbix、配置zabbixagent、添加被控端主机、常用监控指标、自定义监控项