【d46】【Java】【力扣】876.链表的中间结点

embedded/2024/9/22 19:33:30/

思路

先获得总体长度,

再得到中间节点 的索引,,这里的索引是从1开始的索引,而不是从0开始的索引(这种理解方式更简单)

排错:另一个思路:将链表都放进list,获得中间的数字,然后遍历找到这个数字的节点

存在问题:要保证节点的数字不重复才适用

代码

import java.util.ArrayList;public class Main {public static void main(String[] args) {}public class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val = val; }ListNode(int val, ListNode next) { this.val = val; this.next = next; }}class Solution {public ListNode middleNode(ListNode head) {//将链表放进list里面 或者数组里,目的:统计个数int size = 0;ListNode cur = head;while (cur!=null){size++;cur = cur.next;}//寻找中间节点,// cur表示当前是第几个//先判断当前是第几个,是不是中间那个//如果不是,就向下走,并c++int curNum = 1;cur = head;while (curNum!=size/2+1){cur=cur.next;curNum++;}return cur;}}
}

记录

总结

很多时候,使用从1开始的索引,比使用从0开始的索引,更容易理解


http://www.ppmy.cn/embedded/115197.html

相关文章

使用AVL树实现Map

一、数组在裂变扩容时可能会出现环、在数组元素转为链表之后选择尾插法插入节点、数组到链表到AVL到RBT的转换 1、数组在裂变扩容时链表中的节点计算出来的位置可能也会发生变化,在多线程情况下调整节点位置可能会出现环。 2、数组中的数组元素转为链表后插入新节点…

C++_数据封装详解

C 数据封装 所有的 C 程序都有以下两个基本要素: 程序语句(代码):这是程序中执行动作的部分,它们被称为函数。程序数据:数据是程序的信息,会受到程序函数的影响。 封装是面向对象编程中的把数…

网页与微信小程序:一场轻量化应用的博弈

网页与微信小程序:一场轻量化应用的博弈 在如今的信息时代,移动互联网已然成为主流,而在这一趋势的驱动下,应用形态也在不断演变。微信小程序与传统网页,作为两种不同的应用形态,正如两条并行却又交织的道…

「iOS」——单例模式

iOS学习 前言单例模式的概念单例模式的优缺点单例模式的两种模式懒汉模式饿汉模式单例模式的写法 总结 前言 在一开始学习OC的时候,我们初步接触过单例模式。在学习定时器与视图移动的控件中,我们初步意识到单例模式的重要性。对于我们需要保持的控件&a…

在线地图构建GenMapping:使用IPM实现三重增强,语义映射mIou提升超17%

Abstract 在线高清(HD)地图已成为自动驾驶的首选方案,凭借其灵活的更新能力和较低的维护成本,逐渐超越了离线高清地图。然而,现有的在线高清地图模型将视觉传感器的参数嵌入训练过程中,导致在应用于不同参…

低级编程语言和高级编程语言

一.区分低级编程语言和高级编程语言的方法 1.低级编程语言 低级编程语言,并不是简单的编程语言,而是写起来很费事的编程语言,如所有编程语言的"祖宗":汇编语言,写起来极其麻烦,说不定一个 int a1; 它就得写好几行,甚至十几行 这样麻烦的编程语言为什么还没消失那,因…

数据可视化与分析:数据时代的关键工具

一、引言 数据可视化与分析是大数据时代中最为重要的技术之一。随着数据量的不断增加,如何有效地理解、解释和利用数据,已经成为各行各业面临的关键挑战。数据可视化通过图表、图形和互动界面将数据以直观的方式呈现,帮助用户快速识别数据中…

REST-系统架构师(六十九)

1某公司内部的信息系统集成,需要实现在系统之间快速传递可定制格式的数据包,并且当有新的数据包到达时候,接收系统会自动得到通知。另外还要支持数据重传,以确保传输的成功。针对这些需求,应该采用(&#x…