赞
踩
判断链表是否有环
面试官口述题目,要求实现函数,输入是一个头节点,输出是一个bool值。
相当经典的题目了,感觉面试官要是出这个题,应该是觉的你还不错,出个简单的做出来就完事儿了。剑指offer或者leetcode上的老题了,但是手撕代码经典的问题还是不变的。
1:能否想到快慢指针?
2:能否对边界条件进行处理?(头节点为空?没有环的情况下会不会死循环?只有一个节点?)
3:代码写的是否规范?时间复杂度是多少?
实现:
-
- //不管什么语言,链表节点、树节点的定义要熟悉
- class ListNode {
- int val;
- ListNode next;
- ListNode(int x) {
- val = x;
- next = null;
- }
- }
-
- public class Solution {
- public boolean hasCycle(ListNode head) {
- ListNode fast=head;
- ListNode slow=fast;
- while (fast!=null&&fast.next!=null) {
- slow=slow.next;
- fast=fast.next.next;
- if(fast==slow)
- return true;
- }
- return false;
- }
- }
<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。