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

LeetCode 876:链表的中间节点

题目:
在这里插入图片描述
代码示例:

package com.zy.leetcode.LeetCode_876;

/**
 * @Author: zy
 * @Date: 2024-12-27-15:41
 * @Description:链表的中间节点
 */
public class ListNode {

    private int val;

    private ListNode next;

    public ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }

    public ListNode() {
    }

    public ListNode(int val) {
        this.val = val;
    }

    // 链表打印
    private void print(ListNode node) {
        while (node != null) {
            System.out.print(node.val + " -> ");
            node = node.next;
        }
    }

    /**
     * 找链表的中点
     *
     * @param head 头节点
     * @param
     */
    public static ListNode middleNode(ListNode head) {
        ListNode slow = head, fast = head;

        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        return slow;
    }

    /**
     * 数组初始化链表
     */
    public static ListNode initListNode(int[] arr) {
        ListNode dummy = new ListNode(0);
        ListNode cur = dummy;
        for (int num : arr) {
            cur.next = new ListNode(num);
            cur = cur.next;
        }
        return dummy.next;
    }

    /**
     * 获取链表的投节点并返回值
     */
    private static int getHeadVal(ListNode node) {
        if (node != null) {
            return node.val;
        }
        return -1;
    }

    public static void main(String[] args) {

        int[] arr = {1, 2, 3, 4, 5, 6};
        ListNode head = initListNode(arr);
        ListNode listNode = middleNode(head);
        listNode.print(listNode); // 3 -> 4 -> 5 -> null

        //System.out.println("----------------");
        //int headVal = getHeadVal(listNode);
        //System.out.println("HeadVal:" + headVal);

    }

}


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

相关文章:

  • 使用爬虫技术获取网页中的半结构化数据
  • Apache Commons Pool :介绍与使用
  • 关于HarmonyOS Next中卡片的使用方法
  • 自定义luacheck校验规则
  • R语言6种将字符转成数字的方法,写在新年来临之际
  • 电子应用设计方案80:智能桌椅系统设计
  • 典型常见的基于知识蒸馏的目标检测方法总结三
  • Langchain Chat Model 和 Chat Prompt Template
  • 【Axios】如何在Vue中使用Axios请求拦截器
  • Flutter DragTarget拖拽控件详解
  • Effective C++ 条款30:透彻了解 inlining 的里里外外
  • vue 中 ref 详解
  • 移动机器人推动制造业向自动化转升级
  • 数据仓库和数据湖 数据仓库和数据库
  • AI写标书工具:高效智能的标书撰写助手——标小兔
  • 高效设计AI Prompt:10大框架详细对比与应用
  • 【K8S系列】深入解析K8S服务的无状态与有状态
  • CPU、DPU、GPU
  • 华三与华为ACL,及ACL+QOS的区别
  • windows C#-使用对象初始值设定项初始化对象
  • Excel for Finance 04 `IFERROR` 函数
  • ROUGE指标在自然语言处理中的应用:从理论到实践
  • 影刀进阶指令 | liblib反推 (SD AI绘图反推)
  • 基于Springboot的高校宣讲会管理系统设计与实现
  • 【VSCode】工作区及设置
  • 理想的以太网网络故障排查工具:LinkXpert M3