zoukankan      html  css  js  c++  java
  • 判断一个链表中是否有环

    题目描述

    判断一个链表中是否有环

    思路:

    • 首先判断头结点是否为空
      • 若是,代表链表不存在,返回false
      • 若不是,继续下一步判断
    • 定义一个快指针(走两步)
    • 定义一个慢指针(走1步)
    • 一开始都是指向头结点的
    • 循环条件(快指针不为空,快指针的下一个不为空)
      • 快指针不为空 契合偶数结点个数
      • 快指针的下一个不为空 契合奇数结点个数
    • 如果快指针追上慢指针,代表有环,同时指向同一个结点

    图片

    代码实现

    public class Solution {
        public boolean hasCycle(ListNode head) {
           if(head == null) return false;//如果头结点为空,就不存在这个链表
            
            ListNode fast = head;
            ListNode slow = head;
            
            while(fast != null && fast.next!= null){
                fast = fast.next.next;
                slow = slow.next;
                if(fast == slow){
                    return true;
                }
               
               
            }
            return false;
        }
    }
    
  • 相关阅读:
    Linux基础学习(7)
    Linux基础学习(6)
    Linux基础学习(5)
    Linux基础学习(4)
    Linux基础学习(3)
    测试工程师面试题
    Postman实战
    接口测试
    HTTP请求结构与HTTP响应结构
    GET请求与POST请求的区别
  • 原文地址:https://www.cnblogs.com/albertshine/p/13687863.html
Copyright © 2011-2022 走看看