判断链表是否有环
面试官口述题目,要求实现函数,输入是一个头节点,输出是一个bool值。
相当经典的题目了,感觉面试官要是出这个题,应该是觉的你还不错,出个简单的做出来就完事儿了。剑指offer或者leetcode上的老题了,但是手撕代码经典的问题还是不变的。
1:能否想到快慢指针?
2:能否对边界条件进行处理?(头节点为空?没有环的情况下会不会死循环?只有一个节点?)
3:代码写的是否规范?时间复杂度是多少?文章来源:https://www.toymoban.com/news/detail-684856.html
实现:文章来源地址https://www.toymoban.com/news/detail-684856.html
//不管什么语言,链表节点、树节点的定义要熟悉
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;
}
}
< 到了这里,关于华为OD 面试手撕代码真题【判断链表是否有环】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!