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

思路

先获得总体长度,

再得到中间节点 的索引,,这里的索引是从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开始的索引,更容易理解

相关推荐
BING_Algorithm4 分钟前
JDBC核心教程
java·后端·mysql
京师20万禁军教头4 分钟前
33面向对象(中级)-object类详解
java
一个小浪吴啊4 分钟前
重构 AI 编程流:基于 Hermes 记忆中枢与 OpenCode 执行终端的 Harness 工程化实践
java·人工智能·opencode·harness·hermes
Lyyaoo.10 分钟前
【JAVA网络面经】应用层协议
java·开发语言·网络
大大杰哥10 分钟前
leetcode hot100(1) 哈希
leetcode
無限進步D15 分钟前
Java 面向对象高级 继承
java·开发语言
云烟成雨TD17 分钟前
Spring AI Alibaba 1.x 系列【37】ReactAgent 构建、执行流程分析
java·人工智能·spring
Engineer邓祥浩25 分钟前
LeetCode 热题 100 - 第1题:两数之和
算法·leetcode·职场和发展
是宇写的啊26 分钟前
MyBaties
java·开发语言·mybatis
钝挫力PROGRAMER29 分钟前
程序中事件机制的实现
java·后端·python·软件工程