Linked List Cycle

2023-05-16

Given a linked list, determine if it has a cycle in it.
Follow up:
can you solve it without using extra space?

最初代码,错误内容已写明:

bool solution( ListNode *head )
{
	ListNode *one = head, *second = head;
	
	//就这一行而言,对于{1->NULL} 或{}应为no cycle,导致出错 
	if( head == NULL || head->next == NULL )
		return true;
	
	while( one && second )
	{
		//对于{1->2->NULL} 这样的,应为no cycle,
		//但one和second先呗判断才赋值,导致死循环。
		//为了保证second->next->next不非法访问,只需确保second->next不为NULL即可。 
		if( one->next )
			one = one->next;
		if( second->next->next )
			second = second->next->next;
		if( one == second )
			return true;			
	}
	
	return false;
}

修改后:

bool hasCycle(ListNode *head) {
       ListNode *one = head, *second = head;
        
        while( one && second && second->next )
        {
            one = one->next;
            second = second->next->next;
                
            if( one == second )
                return true;
        }
        
        return false;
    }


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linked List Cycle 的相关文章

随机推荐

  • Linux磁盘分区基本分区

    目录 前言 一 磁盘简介 1 名词 2 类型 1 xff09 机械硬盘 2 xff09 固态硬盘 3 尺寸 4 接口 IDE和SATA的区别 5 术语 6 命名 7 分区方式 1 xff09 MBR 2 xff09 GPT 二 管理磁盘 1
  • 使用shell并发执行系统命令

    一 解决方案 旧方案为挨个执行shell exec xff0c 串行执行 xff0c 虽然执行很快 xff0c 奈何监听命令众多 xff0c redis连接有等待时间等 xff0c 有的还需要执行多次取平均值 xff0c 所以执行完已超过1
  • 基于C语言实现(WinForm)FIFA球队管理系统【100010337】

    1 引言 1 1 编写目的 在如今市场上 xff0c 各种评估分析类的软件层出不穷 作为当今世界上最受欢迎的球类之一 足球 xff0c 也以之为题材产生了世人所知的足球管理类游戏 xff0c FIFA足球经理 但是 xff0c 由于其占用内
  • Ubuntu18.04下CUDA10.x和TensorFlow1.x环境搭建(2019.7重编版)

    目录 前言开发环境一览 显卡驱动安装 下载驱动 禁用nouveau 安装驱动 安装CUDA 10 x第一个CUDA程序 安装cudnn7 x安装TensorFlow1 x最后 Mac和Ubuntu下修改pip源和TensorFlow CPU
  • 数通运营商方向常见面试问题(第五部分)

    VXLAN以主要应用在哪里 和传统的二层网络相比 xff0c 有什么优势7 数据中心 首先描述传统二层VPN的缺点 xff1a 传统二层要用STP 收敛慢 链路利用率低不合适 传统VPLS为解决环路会采用STP技术 xff0c CE到PE采
  • Xshell 6 首次连接虚拟机 CentOS 6.8报错:/usr/bin/xauth: file /root/.Xauthority does not exist

    首次连接虚拟机时会提示 usr bin xauth file root Xauthority does not exist xff0c xff0c 这个没关系 xff0c 系统在连接之后会自动创建 xff0c 再次连接时就好了 如下图 xf
  • 一个不喜欢读书的Javaer的读书单

    很可惜 xff0c 从我一开始学技术开始 xff0c 我就不喜欢看书 xff0c 严重的时候翻不到两页就会开始狂打瞌睡 很幸运 xff0c 有互联网能够为我提供很多知识 xff0c 甚至一些知识从网上看来的会更加权威一些 但是 xff0c
  • 【分享】Ubuntu桌面版图形界面下换源

    写在前面 xff1a 由于操作极其简单 xff0c 所以一开始还犹豫要不要单独写篇文章 xff0c 但是后来上网查了以下 xff0c 发现主流都是修改sources list文件的方法 xff08 这种方法的教程见下面的连接 xff0c 这
  • java 之产生死锁的必要条件

    1 死锁 怎么去打破 1 死锁发生的原因 是多个进程并发请求 争夺系统资源而产生的相互等待情况 2 本质问题 xff1a 1 系统资源有限 2 进程推进顺序不合理 3 死锁产生的4个必要条件 xff1a 3 1 进程互斥 资源分配给进程之后
  • MAC 安装tree : fatal error: 'stdlib.h' file not found

    MAC 安装tree fatal error 39 stdlib h 39 file not found 未安装 Command Line Tools命令行工具 xff0c 安装步骤如下 xff1a 在终端中输入 xcode select
  • blog记录

    blog记录 blog整理linux内核redis云 43 负载均衡算法git blog整理 linux内核 https blog csdn net gatieme article category 9265324 Linux内核剖析 xf
  • Git撤销&回滚操作(git reset 和 get revert)

    git 工作流 xff1a 工作区 xff1a 即自己当前分支所修改的代码 xff0c git add xx 之前的 xff01 不包括 git add xx 和 git commit xxx 之后的 暂存区 xff1a 已经 git ad
  • 51单片机——计数器与定时器的区别

    定时器和计数器是同一器件 计数器 其共同的特点是都有一个计数脉冲输入端 每输入一个脉冲 计数器就进行加1或减1计数 若计数器件的计数脉冲的频率固定 则可利用计数实现定时 这就是定时器 若计数器件的作用仅仅是记录输入脉冲的多少 则称为计数器
  • git学习笔记

    本地仓 lt gt 暂存区 lt gt 版本库 撤销 xff1a 已修改的文件test c xff0c 撤销 git checkout test c 必须要 xff0c 不然就会切换分支已修改的文件并使用 git add 添加到暂存区 gi
  • github提交代码-简介

    使用步骤 在 github 上 fork 一个项目到自己的仓库 需要先fork xff0c 因为原始项目没有权限git clone https github com name repos git 从自己的仓下 clone代码到本地修改本地代
  • linux时间相关结构体和函数整理

    一 时间类型 Linux下常用的时间类型有4个 xff1a time t xff0c struct timeb struct timeval xff0c struct timespec xff0c clock t struct tm 1 t
  • xargs 命令

    xargs xargs 命令 用途 构造参数列表并运行命令 大多数 Linux 命令都会产生输出 xff1a 文件列表 字符串列表等 但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办 xff1f 例如 xff0c file 命令
  • fedora20安装putty No package ‘gtk+-2.0′ found

    这里转载一下 我在编译安装emacs23的时候提示No package gtk 43 2 0 found centos的开发环境 网上搜了一下 xff0c 发现安装gtk 43 2 0不是一件容易的事 xff0c 后来无意发现一个帖子挺不错
  • Reverse Words in a String

    Given an input string reverse the string word by word For example Given s 61 34 the sky is blue 34 return 34 blue is sky
  • Linked List Cycle

    Given a linked list determine if it has a cycle in it Follow up can you solve it without using extra space 最初代码 xff0c 错误