【基础算法】快慢双指针
【摘要】 链表相关问题判断链表是否有环应用场景:在处理链表数据结构时,例如在垃圾回收算法(检测引用是否形成循环)、资源管理(避免循环依赖)等场景中,需要判断链表是否存在环。实现原理:使用快慢双指针同时从链表头开始遍历。快指针每次移动两步,慢指针每次移动一步。如果链表有环,快指针最终会追上慢指针;如果快指针先到达链表末尾(null),则说明链表无环。示例代码(以 Java 为例):class ListN...
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public class LinkedListMiddleNode {
public ListNode middleNode(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while (fast!= null && fast.next!= null) {
slow = slow.next;
fast = fast.next.next;
}
return slow;
}
}
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)