当前位置:   article > 正文

华为OD 面试手撕代码真题【判断链表是否有环】_手撕链表是否成环

手撕链表是否成环

判断链表是否有环

        面试官口述题目,要求实现函数,输入是一个头节点,输出是一个bool值。

        相当经典的题目了,感觉面试官要是出这个题,应该是觉的你还不错,出个简单的做出来就完事儿了。剑指offer或者leetcode上的老题了,但是手撕代码经典的问题还是不变的。

        1:能否想到快慢指针

        2:能否对边界条件进行处理?(头节点为空?没有环的情况下会不会死循环?只有一个节点?)

        3:代码写的是否规范?时间复杂度是多少?

实现:

  1. //不管什么语言,链表节点、树节点的定义要熟悉
  2. class ListNode {
  3. int val;
  4. ListNode next;
  5. ListNode(int x) {
  6. val = x;
  7. next = null;
  8. }
  9. }
  10. public class Solution {
  11. public boolean hasCycle(ListNode head) {
  12. ListNode fast=head;
  13. ListNode slow=fast;
  14. while (fast!=null&&fast.next!=null) {
  15. slow=slow.next;
  16. fast=fast.next.next;
  17. if(fast==slow)
  18. return true;
  19. }
  20. return false;
  21. }
  22. }
<
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/385242
推荐阅读
相关标签
  

闽ICP备14008679号