判断链表中是否有环

  • 实例要求:
  • 给定一个链表的头节点 head ,判断链表中是否有环
  • 如果链表中存在环 ,则返回 true ,否则返回 false;
  • 实例分析:
  • 1、定义两个指针temp1和temp2,指针temp1每次只移动一步,而指针temp2每次移动两步
  • 2、初始化两个指针,指针temp1在位置 head,而指针temp2在位置 head->next
  • 3、在移动的过程中,指针temp2反过来追上指针temp1,就说明该链表为环形链表
  • 示例代码:
c 复制代码
	/**
	 * Definition for singly-linked list.
	 * struct ListNode {
	 *     int val;
	 *     struct ListNode *next;
	 * };
	 */
	bool hasCycle(struct ListNode *head) 
	{
	    if(NULL == head || NULL == head->next)	
	    {
	        return false; 
	    }
	
	    struct ListNode* temp1 = head;
	    struct ListNode* temp2 = head->next;
	
	    while(temp1 != temp2)
	    {
	        if(NULL == temp2 || NULL == temp2->next)
	        {
	            return false;
	        }
	        temp1 = temp1->next;
	        temp2 = temp2->next->next;
	    }
	
	    return true;
	
	    
	}
  • 注意:
  • NULL == head:入参合理性检查;
  • NULL == head->next:只有一个头结点;
相关推荐
赫瑞18 分钟前
数据结构中的排列组合 —— Java实现
java·开发语言·数据结构
大熊背23 分钟前
ISP Pipeline中Lv实现方式探究之三--lv计算定点实现
数据结构·算法·自动曝光·lv·isppipeline
yuannl104 小时前
数据结构----队列的实现
数据结构
Mr_Xuhhh5 小时前
从ArrayList到LinkedList:理解链表,掌握Java集合的另一种选择
java·数据结构·链表
Ricardo-Yang6 小时前
SCNP语义分割边缘logits策略
数据结构·人工智能·python·深度学习·算法
soragui7 小时前
【Python】第 4 章:Python 数据结构实现
数据结构·windows·python
samroom7 小时前
【鸿蒙应用开发 Dev ECO Studio 5.0版本】从0到1!从无到有!最全!计算器------按钮动画、滑动退格、中缀表达式转后缀表达式、UI设计
数据结构·ui·华为·typescript·harmonyos·鸿蒙
算法鑫探8 小时前
10个数下标排序:最大值、最小值与平均值(下)
c语言·数据结构·算法·排序算法·新人首发
王老师青少年编程8 小时前
csp信奥赛c++之状压枚举
数据结构·c++·算法·csp·信奥赛·csp-s·状压枚举
Mr_Xuhhh9 小时前
深入理解二叉树:从数据结构到算法实战
数据结构·算法