leetCode – 237 – 删除链表中的节点 – java – 这题就是打破常规删除节点的思想的启蒙。

云惠网小编 2021年12月29日15:18:02
评论
658字阅读2分11秒
摘要

文章目录前言题目题目解析代码前言 这个题目非常简单,原本认为是不用写的,但是突然想想:可能有些人,太过执着于 自己认知的知识,所以我觉得还是要写写,反正又不多。。。 题目 题目解析 朋友们,千万不要被 题目苏坡迷惑了!认清链表的本质!在单向链表中,没有前驱节点是不可能删除节点之后,还能保持整个链表的连接性!那么,我们该怎么思考这题? 首先,题目要删除node节点,主要是想节点val值,也就是在遍历链表打印val值的时候,不想让 node.val 值 被打印。 #解题思维

广告也精彩

题目

在这里插入图片描述

class Solution {
public void deleteNode(ListNode node) {
if(node == null || node.next == null){
//  防止 node 为null,另外 node节点不能是最后一个节点(node.next == null)
// 如果是这两种情况,那就没必要 “删除” 节点了
return;
}
node.val = node.next.val;
node.next= node.next.next;
}
}


#解题思维


代码


朋友们,千万不要被 题目苏坡迷惑了!认清链表的本质!在单向链表中,没有前驱节点是不可能删除节点之后,还能保持整个链表的连接性!
那么,我们该怎么思考这题? 首先,题目要删除node节点,主要是想节点val值,也就是在遍历链表打印val值的时候,不想让 node.val 值 被打印。

在这里插入图片描述

这个题目非常简单,原本认为是不用写的,但是突然想想:可能有些人,太过执着于 自己认知的知识,所以我觉得还是要写写,反正又不多。。。

题目解析

文章目录

  • 前言
  • 题目
  • 题目解析
  • 代码

在理解题目的意思后,就很清楚了。题目只是想删除node节点的val值,又不影响链表的链接。
那我们就将node.next.val值 拷贝到 node.val 值,也就是说使 node.val = node.next,val 后面我们再利用,单向链表删除的节点的方法,覆盖删除node.next 节点(node的下一个节点)。
在这里插入图片描述

前言

本文转自 https://blog.csdn.net/DarkAndGrey/article/details/122196664

腾讯云618
未分类
云惠网小编
SpringCloud -- Config、Bus解析

SpringCloud — Config、Bus解析

1、Config1.1、概述简介1. 分布式面临的问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要...
Java数据结构-了解复杂度

Java数据结构-了解复杂度

2.实例分析与计算  四.写在最后  // 计算斐波那契递归fibonacci的时间复杂度 int fibonacci(int N) { return N < 2 ? N : fibonacci...
[深度解剖C语言] --关键字 static

[深度解剖C语言] –关键字 static

static ---最名不副实的关键字目录1.static修饰全局变量2.static修饰函数3.static修饰局部变量static的作用:1.static修饰全局变量我们创建两...
Java数据结构-认识顺序表

Java数据结构-认识顺序表

目录二.顺序表1.概念及结构2.顺序表的实现打印顺序表获取顺序表的有效长度在pos位置新增元素判断是否包含某个元素查找某个元素对应的位置获取/查找pos位置的元素给pos位置的元素...
腾讯云618

发表评论