zoukankan      html  css  js  c++  java
  • 链表//环形链表

    给定一个链表,判断链表中是否有环。

    进阶:
    你能否不使用额外空间解决此题?

    /**
     * Definition for singly-linked list.
     * class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        public boolean hasCycle(ListNode head) {
            ListNode fast;
            ListNode slow;
            if(head == null||head.next == null)
                return false;
            else{
                fast = head.next;
                slow = head;
                while(fast != null){
                    if(fast == slow)
                        return true;
                    else{
                        fast = fast.next;
                        if(fast == null)
                            return false;
                        else{
                            fast = fast.next;
                            slow = slow.next;
                        }
                    }
                }
            }
            return false;
        }
    }
    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        bool hasCycle(ListNode *head) {
            ListNode *fast;
            ListNode *slow;
            
            if(head == nullptr||head->next == nullptr)
                return false;
            else{
                fast = head->next;
                slow = head;
                while(fast != nullptr){
                    if(fast == slow)
                        return true;
                    else{
                        fast = fast->next;
                        if(fast == nullptr)
                            return false;
                        else{
                            fast = fast->next;
                            slow = slow->next;
                        }
                    }
                }
            }
            return false;
        }
    };
  • 相关阅读:
    使用ConcurrentHashMap需要知道的细节
    并查集(Union-Find)
    LeetCode2
    补充之前博客的几种排序--希尔排序、堆排序、归并排序
    左式二叉堆
    优先队列的一种实现--堆ADT
    开放地址法散列表ADT
    分离链表法散列ADT
    AVL树
    二叉查找树ADT--C语言描述
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602317.html
Copyright © 2011-2022 走看看