免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
141-環(huán)形鏈表

leetcode題解——環(huán)形鏈表

題目如下

給定一個鏈表,判斷鏈表中是否有環(huán)。

如果鏈表中有某個節(jié)點,可以通過連續(xù)跟蹤 next 指針再次到達,則鏈表中存在環(huán)。 為了表示給定鏈表中的環(huán),我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環(huán)。注意:pos 不作為參數(shù)進行傳遞,僅僅是為了標(biāo)識鏈表的實際情況。

如果鏈表中存在環(huán),則返回 true 。 否則,返回 false 。

進階:你能用 O(1)(即,常量)內(nèi)存解決此問題嗎?

解題思路

  • 有兩種解題思路:1. 雙指針法;2. 哈希表法
  1. 雙指針法:設(shè)置快慢兩個指針,快指針每次走兩步,慢指針每次走一步,若有環(huán),則一定會在某個時刻,快慢指針在環(huán)內(nèi)相遇。
  2. 哈希表法:設(shè)置哈希表來記錄所有遍歷過的結(jié)點,若有環(huán),一定會遍歷到重復(fù)的結(jié)點。

有點意思

我原本以為哈希表法的速度會比雙指針法快,結(jié)果是我錯付了。仔細一想應(yīng)該是存表的時間消耗太多了

//c語言,雙指針法
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode *fast=head;
    struct ListNode *slow=head;
    while(fast!=NULL && fast->next!=NULL){
        fast=fast->next->next;
        slow=slow->next;
        if(slow==fast){
            return true;
        }
    }
    return false;
}
//c++,哈希表法
/**
 * 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) {
        unordered_set<ListNode*> seen;
        while (head != nullptr) {
            if (seen.count(head)) {
                return true;
            }
            seen.insert(head);
            head = head->next;
        }
        return false;

    }
};
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
劍指offer(C++)-JZ23:鏈表中環(huán)的入口結(jié)點(數(shù)據(jù)結(jié)構(gòu)-鏈表)
面試題目 鏈表專題 - 數(shù)據(jù)結(jié)構(gòu)與算法 - tchlinux
460. 快慢指針解環(huán)形鏈表 II
LeetCode 142.環(huán)形鏈表II
142. 環(huán)形鏈表 II
劍指offer 14 輸入一個鏈表,輸出該鏈表中倒數(shù)第k個結(jié)點。
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服