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

LeetCode 141:环形链表

题目:
在这里插入图片描述

题解:
在这里插入图片描述

代码示例:

package com.zy.leetcode.LeetCode_141;

/**
 * @Author: zy
 * @Date: 2025-01-03-14:09
 * @Description: 环形链表
 */
public class ListNode_141 {

    private int val;

    private ListNode_141 next;

    public ListNode_141(int x) {
        val = x;
        next = null;
    }

    public static ListNode_141 createList(int[] arr) {
        ListNode_141 dummy = new ListNode_141(0);
        ListNode_141 cur = dummy;
        for (int num : arr) {
            cur.next = new ListNode_141(num);
            cur = cur.next;
        }
        return dummy.next;
    }

    public static void printList(ListNode_141 head) {
        ListNode_141 cur = head;
        while (cur != null) {
            System.out.print(cur.val + " -> ");
            cur = cur.next;
        }
        System.out.println("null");
    }

    /**
     * t兔子一次走两步
     * 龟一次走一步
     *
     * @param node
     * @return
     */
    private static boolean hasCycle(ListNode_141 node) {
        ListNode_141 h = node;//兔
        ListNode_141 t = node;// tortoise

        while (h != null && h.next != null) {
            h = h.next.next;
            t = t.next;
            if (h == t) {
                return true;
            }
        }
        return false;
    }

    public static void main(String[] args) {
        int[] arr = {3, 2, 0, -4, 9, 5};
        ListNode_141 head = createList(arr);
        printList(head);

        System.out.println(hasCycle(head)); // true

        //环行链表
        ListNode_141 node1 = new ListNode_141(3);
        ListNode_141 node2 = new ListNode_141(2);
        ListNode_141 node3 = new ListNode_141(0);
        ListNode_141 node4 = new ListNode_141(-4);
        ListNode_141 node5 = new ListNode_141(9);
        ListNode_141 node6 = new ListNode_141(5);

        node1.next = node2;
        node2.next = node3;
        node3.next = node4;
        node4.next = node5;
        node5.next = node6;
        node6.next = node2;

        System.out.println(hasCycle(node1)); // true

    }
}


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

相关文章:

  • Kafka 消费者专题
  • QT----------QT Data Visualzation
  • 【超详细】React SSR 服务端渲染实战
  • Prism模块化
  • OpenCV计算机视觉 05 图像边缘检测(Sobel算子、Scharr算子、Laplacian算子、Canny边缘检测)
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(数字化联合审查管理系统)
  • C++面向对象编程:纯虚函数、抽象类、虚析构、纯虚析构
  • 【项目】多模态图文理解-GLM-Edge实战
  • Scala_【5】函数式编程
  • 以太网连接,本地连接,宽带连接,无线WLAN连接;交换机和路由器
  • 【MyBatis-Plus 条件构造器】全面解析 Wrapper
  • 【赵渝强老师】MongoDB文档级别的并发控制
  • vue 虚拟滚动 vue-virtual-scroller RecycleScroller
  • logback日志文件多环境配置路径
  • Linux下读取Windows下保存的文件,报错信息中出现“^M“时如何解决?【由于Windows和Linux的换行方式不同造成的-提供两种转换方式】
  • React18路由和Vue3路由进行对比
  • [2024] 如何以 5 种可行的方式在Android中打开 HEIC 文件?
  • aardio —— 虚表 —— 模拟属性框
  • Edge Scdn的应用场景有哪些?
  • VScode SSH 错误:Got bad result from install script 解決
  • CG顶会论文阅读|《科技论文写作》硕士课程报告
  • FreeSWITCH dialplan/default.xml 之释疑
  • 如何删除 Android 设备上的应用程序 | 3种高效方法
  • Springcloud项目-前后端联调(一)
  • 代码随想录算法训练营day21
  • Spring线程池优雅关闭