Soalan temu bual tentang javascript
仅有的幸福
仅有的幸福 2017-07-05 10:54:36
0
2
805

Saya lupa apa yang saya tanya ketika itu, kerana saya banyak bercakap dan ingatan saya tidak baik
Mungkin "Bagaimana untuk menilai sama ada rantai mempunyai cincin"
Saya hanya ingat maksudnya...
Terima kasih. kerana membantu saya membetulkan masalah. Perkara utama saya ialah saya ingin tahu apakah soalan itu.

仅有的幸福
仅有的幸福

membalas semua(2)
滿天的星座

Ini soalan yang agak sukar

var a = {
    val: 'a'
}, b = {
    val: 'b'
}, c = {
    val: 'c'
}; 

a.next = b;
b.next = c; 
c.next = a;

a.nextb
b.nextc
c.nexta
.....

Jika anda melaksanakan gelung berikut

var temp = a; 
while(tamp){
    temp = temp.next; 
}

Kemudian ia akan menjadi gelung tak terhingga, dan suhu akan ditetapkan seperti berikut: a => b => c => a => b ..... 这样的 abc Ia membentuk gelung


Anda boleh merujuk kepada baris gilir bulat dan senarai pautan cincin.

Jadi bagaimana untuk menilai?

Memandangkan dia kata nak saya judge, ikut step di atas.

Rekursi

function isCircle(list, head){
    // 默认值 
    head = head || list; 
    if (list.next === head){ // 相等 
        console.log('是循环的'); 
        return true; 
    } else if (!list.next) { // 下一个? 不存在的 
        console.log('不是循环的');
        return false; 
    } else {
        // 继续递归 
        return isCircle(list.next, head); 
    }
}

ScreenShot

(Selepas saya selesai menulis, saya sedar saya melakukan kesilapan dan menulis semula... == Maaf)

ringa_lee

Soalan ini ialah soalan algoritma yang sangat klasik Cara paling klasik ialah menggunakan 快慢指针法 Untuk soalan khusus, anda boleh pergi ke leetcode

Ringkasnya, tentukan penunjuk pantas dan penunjuk perlahan mengambil dua langkah pada satu masa, dan penunjuk perlahan mengambil satu langkah pada satu masa.

var hasCycle = function(head) {
    if(!head) return false;
    var faster = head;
    var slower = head;
    while (faster && faster.next) {
        faster = faster.next.next;
        slower = slower.next;
        if (slower === faster) return true;
    }
    return false;
};
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan