精华内容
下载资源
问答
  • 判断单链表是否有环

    2019-10-16 20:38:38
    LeetCode练习 判断单链表是否有环 //判断单链表是否有环 //快慢指针法,慢指针一次走一步,快指针一次走两步,若有环快慢指针一定能相遇 /** * Definition for singly-linked list. * struct ListNode { * int val; ...

    LeetCode练习 判断单链表是否有环

    //判断单链表是否有环
    //快慢指针法,慢指针一次走一步,快指针一次走两步,若有环快慢指针一定能相遇
    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     struct ListNode *next;
     * };
     */
    bool hasCycle(struct ListNode *head) {
        if(head==NULL||head->next==NULL){
            return false;
        }
       struct ListNode* slow=head;
       struct ListNode* fast=head;
       while(1){
           if(slow->next==NULL){
               return false;
           }
           slow=slow->next;
           if(fast->next==NULL){
           return false;
           }
           fast=fast->next->next;
           if(fast==NULL){
           return false;
           }
           if(slow==fast){
               return true;
           }
       } 
    }
    
    展开全文
  • 数据结构 - 判断单链表是否有环(C++)

    万次阅读 多人点赞 2019-02-20 10:48:18
    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net /* * Created by Chimomo. */ #include "...::hasLo...

    分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net 

    /*
     * Created by Chimomo.
     */
    
    #include "SingleLinkedList.h"
    
    template<class T>
    bool SingleLinkedList<T>::hasLoop() {
        Node<T> *pNodeSlow = head, *pNodeFast = head;
        while (pNodeFast && pNodeFast->next) {
            pNodeSlow = pNodeSlow->next;
            pNodeFast = pNodeFast->next->next;
            if (pNodeSlow == pNodeFast) {
                break;
            }
        }
        if (pNodeFast == NULL || pNodeFast->next == NULL) {
            return false;
        } else {
            return true;
        }
    }

     

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,724
精华内容 689
关键字:

判断单链表是否有环