【每日一题-3】链表带环问题

2023-05-16

判断链表是否带环?如果带环,环的长度是多少?环的入口节点是什么?

struct ListNode {
	int val;
	struct ListNode *next;
	ListNode(int x) 
		:val(x), next(NULL) 
	{}
};

//判断链表是否带环?
ListNode* IsLoop(ListNode* pHead)
{
	if (NULL == pHead)
	{
		return NULL;
	}
	ListNode* pfast = pHead;
	ListNode* pslow = pHead;
	while (pHead->next != NULL && pHead->next->next != NULL)
	{
		pfast = pfast->next->next;
		pslow = pslow->next;
		if (pfast == pslow)
		{
			return pslow;
		}
	}
	return NULL;
}

//若带环求环的长度?说明已经存在环
int GetLoopListLen(ListNode* pMeetNode)
{
	if (pMeetNode == NULL)		//pMeetNode为快慢指针相遇点
		return 0;
	int count = 0;
	ListNode* cur = pMeetNode;
	while (cur != pMeetNode)
	{
		++count;
		cur = cur->next;
	}
	return count;
}

//若带环求环的入口点?
ListNode* EntryNodeOfLoop(ListNode* pHead, ListNode* pMeet)
{
	if (NULL == pHead && NULL == pMeet)
	{
		return NULL;
	}
	ListNode* pFirst = pHead;
	ListNode* pSecond = pMeet;
	while (pFirst != pMeet)
	{
		pFirst = pFirst->next;
		pSecond = pSecond->next;
	}
	return pFirst;
}
设计一个类不能被继承

class A
{
public:
	static A GetA()
	{
		A a;
		return a;
	}

	static void deleteA(A* a)
	{
		delete a;
		a = NULL;
	}
private:
	A()
	{
		cout << "A" << endl;
	}

	~A()
	{
		cout << "~A" << endl;
	}
};
设计一个类只能在栈上创建对象。 
class StackType
{
public:
	static StackType* CreateObject()
	{
		return new StackType;
	}
private:
	StackType()
	{}
	int _p;
};
设计一个类只能在堆上创建对象。 
class HeapType
{
public:
	static HeapType* CreateObject()
	{
		return new HeapType;
	}
private:
	HeapType()
	{}
	int _p;
};

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

【每日一题-3】链表带环问题 的相关文章

  • 【每日一题-1】有序链表合并与累加和问题

    基础题 合并两个有序链表 xff0c 合并以后的链表依旧有序 思路 xff1a xff08 1 xff09 特殊情况处理 xff1a 若两个链表都为则返回空 xff0c 若其中一个链表为空返回另外一个链表的头结点 xff1b xff08 2
  • 【每日一题-2】链表基础面试题

    1 查找链表的倒数第k个节点 span style font family none font size 12px ListNode FindKthToTail ListNode pListHead unsigned int k if pL
  • 【每日一题-3】链表带环问题

    判断链表是否带环 xff1f 如果带环 xff0c 环的长度是多少 xff1f 环的入口节点是什么 xff1f span style font family none font size 12px struct ListNode int v
  • 每日一题(力扣)计划

    983 最低票价 问题描述 在一个火车旅行很受欢迎的国度 xff0c 你提前一年计划了一些火车旅行 在接下来的一年里 xff0c 你要旅行的日子将以一个名为 days 的数组给出 每一项是一个从 1 到 365 的整数 火车票有三种不同的销
  • Leetcode---面试题 08.03. 魔术索引---每日一题---二分查找

    面试题 08 03 魔术索引 魔术索引 在数组A 0 n 1 中 xff0c 有所谓的魔术索引 xff0c 满足条件A i 61 i 给定一个有序整数数组 xff0c 编写一种方法找出魔术索引 xff0c 若有的话 xff0c 在数组A中找
  • Leetcode每日一题——“链表的中间结点”

    各位CSDN的uu们你们好呀 xff0c 今天 xff0c 小雅兰愉快的刷题内容是链表的中间结点 嘿嘿 xff0c 小雅兰的单链表还在偷懒ing xff0c 一直没有更新 xff0c 最近应该会更新出来 下面 xff0c 就让我们进入链表的
  • 蓝桥杯——青蛙过河(JAVA)

    题目 小青蛙住在一条河边 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线 小青蛙每次跳跃必须落在一块石头或者岸上 不过 每块石头有一个高度 每次小青蛙从一块石头起跳 这块石头的高度就 会下降 1 当石
  • Python:最低要求

    描述 体育老师以小组为单位 考查大家的仰卧起坐的成绩 只要一个小组所有人仰卧起坐的个数之和 达到老师的要求 则整个小组就算过关 因此 程序会接收这样两个信息 一个是小组成绩清单 一个是老师的个数要求 只要小组成绩达到或超过老师的个数要求 程
  • 【LeetCode 每日一题】53. 最大子数组和

    01 题目描述 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 子数组 是数组中的一个连续部分 02 示例 示例1 输入 nums 2 1 3 4 1 2 1 5 4 输出 6 解释 连
  • Python:回文日期问题

    每日一题 目录 每日一题 文章目录 前言 一 题目描述 二 输入描述 三 输出描述 1 引入库 2 执行结果 datetime模块的用法 flag的用法 replace 方法 参数 总结 前言 本文章重点讲述回文日期问题 在其中介绍用到的函
  • 【面试八股文】每日一题:谈谈你对设计模式的理解

    谈谈你对设计模式的理解 每日一题 设计模式 谈谈你对设计模式的理解 面试八股文 设计模式 Design pattern 是一套被反复使用 多数人知晓的 经过分类编目的 代码设计经验的总结 通过对这些设计模式的合理使用能够是我们的系统更加的健
  • 每日一题(C语言基础篇)3

    题目描述 求一个整数中2进制为1的个数 例如 8 00001000 有一个二进制为1的数 9999 270F 有8个2进制为1的数 代码实现 include
  • 字符串中找出连续最长数字串(两种题型)--C++

    题目描述一 读入一个字符串str 输出字符串str中的连续最长的数字串 输入描述 个测试输入包含1个测试用例 一个字符串str 长度不超过255 输出描述 在一行内输出str中里连续最长的数字串 输入 abcd12345ed125ss123
  • python每日一题(leetcode/atcoder/nowcoder)

    背景 用leetcode每日一题 正好练一练python的一些写法吧 2021年2月28日 896 单调队列 判断数组是单增的或者是单减的 学习到一个sorted的用法 还有倒序的切片 class Solution def isMonoto
  • 【晓龙oba出品 - 黑科技解题系列】- 最小操作次数使数组元素相等

    题目链接 453 最小操作次数使数组元素相等 思路 算法归根到底就是找规律的游戏 我们首先来看一个现象 以数组nums 1 2 3 4 5 为例 当我们将数组排序后 可以知道最小值为1 最大值为5 此时我们需要四次运算可以使最小值与最大值相
  • 1011. 在 D 天内送达包裹的能力

    传送带上的包裹必须在 D 天内从一个港口运送到另一个港口 传送带上的第 i 个包裹的重量为 weights i 每一天 我们都会按给出重量的顺序往传送带上装载包裹 我们装载的重量不会超过船的最大运载重量 返回能在 D 天内将传送带上的所有包
  • Python:等差数列

    题目描述 数学老师给小明出了一道等差数列求和的题目 但是粗心的小明忘记了一 部分的数列 只记得其中 N 个整数 现在给出这 N 个整数 小明想知道包含这 N 个整数的最短的等差数列有几项 输入描述 输入的第一行包含一个整数 N 第二行包含
  • 714. 买卖股票的最佳时机含手续费

    给定一个整数数组 prices 其中第 i 个元素代表了第 i 天的股票价格 非负整数 fee 代表了交易股票的手续费用 你可以无限次地完成交易 但是你每笔交易都需要付手续费 如果你已经购买了一个股票 在卖出它之前你就不能再继续购买股票了
  • 【面试八股文】每日一题:谈谈你对IO的理解

    谈谈你对IO的理解 每日一题 Java核心 谈谈你对对IO的理解 面试八股文 1 Java基础知识 Java IO Input Output 是Java编程语言中用于处理输入和输出的一组类和接口 它提供了一种在Java程序中读取和写入数据的
  • 【每日一题】leetcode 二叉树层序遍历 - 介绍

    层序遍历 遍历顺序为 F B G A D I C E H 一层一层遍历 代码 import java util ArrayList import java util LinkedList import java util List impo

随机推荐

  • 守护进程&创建

    守护进程 守护进程也称为精灵进程 xff0c 是一种运行在后台的特殊进程 和其他后台进程所不同的是 xff0c 它始终独立其他会话 xff0c 自成会话组 xff0c 不受系统登录和注销的影响 xff0c 一般都是7 24小时在后台运行的
  • 智能指针剖析&模拟

    要学习智能指针之前需要先了解一下什么叫RAII xff1f 所谓RAII就是运行时初始化 xff0c 具体的实现就是定义一个类来封装运行资源的分配和释放工作 xff0c 在构造函数中进行资源的分配 xff0c 在析构函数中进行资源的回收工作
  • 代理服务器与NAT技术

    1 1 简介 1 1 1 名词解释 公有IP地址 xff1a 也叫全局地址 xff0c 是指合法的IP地址 xff0c 它是由NIC xff08 网络信息中心 xff09 或者ISP 网络服务提供商 分配的地址 xff0c 对外代表一个或多
  • 【网络】网络基础知识总结

    谈到网络 xff0c 首先就需要知道计算机网络中的两个参考模型 xff0c 即OSI参考模型 与TCP IP参考模型 OSI参考模型 OSI xff08 Open System Interconnect xff09 xff0c 即开放式系统
  • 【程序员面试宝典】数组相关面试题

    1 像素翻转 有一副由NxN矩阵表示的图像 xff0c 这里每个像素用一个int表示 xff0c 请编写一个算法 xff0c 在不占用额外内存空间的情况下 即不使用缓存矩阵 xff0c 将图像顺时针旋转90度 给定一个NxN的矩阵 xff0
  • 浅析TCP协议中的各种定时器

    TCP在建立连接之后可能会启动四个定时器 重传计时器 xff1a Retransmission Timer 坚持计时器 xff1a Persistent Timer 保活计时器 xff1a Keeplive Timer 时间等待计时器 xf
  • 【程序员面试宝典】字符串相关面试题

    1 确定字符互异 请实现一个算法 xff0c 确定一个字符串的所有字符是否全都不同给定一个string iniString xff0c 请返回一个bool值 True代表所有字符全都不同 xff0c False代表存在相同的字符 保证字符串
  • 【程序员面试宝典】链表相关面试题

    1 链表中的第k个节点 题目描述 xff1a 输入一个链表 xff0c 输出该链表中倒数第k个结点 struct ListNode span class hljs built in int span val struct ListNode
  • 【网络】网络端口号分类

    在开始之前有必要先说一下为什么要网络要对对端口号进行细分 xff0c 而像常见的端口号之间又是什么东西 xff0c 有什么作用 xff0c 为什么要学习端口号相关的知识 xff0c 带着这些疑问 xff0c 下面开始今天知识的学习 在我学习
  • TCP协议中的URG和PSH位

    相关背景知识 http blog csdn net double happiness article details 74025156 在探讨TCP协议中的URG和PSH控制位时 xff0c 我们先来简单的复习一下TCP协议 URG xff
  • 问答QA(一)综述

    声明 xff1a 本文是综合网上问答系统介绍 xff0c 做的总结 xff0c 如有侵权 xff0c 请联系处理 xff0c 谢谢 一 问答系统架构 1 1 问题分析模块 负责对用户的提问进行处理 xff1b 生成查询关键词 xff08 提
  • 【程序员面试宝典】栈和队列相关面试题

    1 集合栈 题目描述 xff1a 请实现一种数据结构SetOfStacks xff0c 由多个栈组成 xff0c 其中每个栈的大小为size xff0c 当前一个栈填满时 xff0c 新建一个栈 该数据结构应支持与普通栈相同的push和po
  • 【程序员面试宝典】栈的应用

    1 下一个较大元素 现在我们有一个int数组 xff0c 请你找出数组中每个元素的下一个比它大的元素 给定一个int数组A及数组的大小n xff0c 请返回一个int数组 xff0c 代表每个元素比他大的下一个元素 若不存在则为 1 保证数
  • time_wait与面试的暧昧

    背景知识 TCP三次握手与四次挥手 http blog csdn net double happiness article details 70160738 time wait是什么 xff1f 通过上面三次握手和四次挥手的学习 xff0c
  • 【通信方式五】socket编程之TCP通信

    1 网络字节序 网络字节序就是熟知的关于大小端的问题 xff0c 关于前面的大小端的判断方法 xff0c 以及代码实现再此就不在赘述 xff0c 下面只谈网络中的字节序问题 xff08 如何判定当前机器的大小端 xff1a http blo
  • 【通信方式六】socket编程之UDP通信

    相关博客 通信方式五 socket编程之TCP http blog csdn net double happiness article details 74938008 由于TCP协议是可靠的面向连接的协议 xff0c 因此在服务器端需要执
  • shell下的第一个编程(不一样的1到100累加)

    相信对于一个程序 猿 来说 xff0c 除了我们入门的 hello world 之外 xff0c 最简单的代码就是只有从1累加到100这样简单的程序吧 xff0c 没错这样的程序在现在来看或许根本不如我们的法眼 xff0c 那么问题来了 x
  • 【每日一题-1】有序链表合并与累加和问题

    基础题 合并两个有序链表 xff0c 合并以后的链表依旧有序 思路 xff1a xff08 1 xff09 特殊情况处理 xff1a 若两个链表都为则返回空 xff0c 若其中一个链表为空返回另外一个链表的头结点 xff1b xff08 2
  • 【每日一题-2】链表基础面试题

    1 查找链表的倒数第k个节点 span style font family none font size 12px ListNode FindKthToTail ListNode pListHead unsigned int k if pL
  • 【每日一题-3】链表带环问题

    判断链表是否带环 xff1f 如果带环 xff0c 环的长度是多少 xff1f 环的入口节点是什么 xff1f span style font family none font size 12px struct ListNode int v