LeetCode-141-環(huán)形鏈表

題目描述:給定一個(gè)鏈表,判斷鏈表中是否有環(huán)。
如果鏈表中有某個(gè)節(jié)點(diǎn),可以通過連續(xù)跟蹤 next 指針再次到達(dá),則鏈表中存在環(huán)。 為了表示給定鏈表中的環(huán),我們使用整數(shù) pos 來表示鏈表尾連接到鏈表中的位置(索引從 0 開始)。 如果 pos 是 -1,則在該鏈表中沒有環(huán)。注意:pos 不作為參數(shù)進(jìn)行傳遞,僅僅是為了標(biāo)識(shí)鏈表的實(shí)際情況。
如果鏈表中存在環(huán),則返回 true 。 否則,返回 false 。
示例說明請(qǐng)見LeetCode官網(wǎng)。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/linked-list-cycle/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。
解法一:Set去重
首先,如果head為null或者h(yuǎn)ead只有一個(gè)結(jié)點(diǎn),直接返回false;
否則,遍歷head,利用HashSet判斷是否有環(huán),appeared表示遍歷過的結(jié)點(diǎn),遍歷過程如下:
將head結(jié)點(diǎn)添加到appeared里,如果返回false,表示結(jié)點(diǎn)已存在,說明有環(huán)存在,直接返回true;如果返回true,表示結(jié)點(diǎn)不存在,繼續(xù)遍歷下一個(gè)結(jié)點(diǎn)。
遍歷結(jié)束,如果沒有環(huán)存在,返回false。
【每日寄語】 不戀塵世浮華,不寫紅塵紛擾,不嘆世道蒼涼,不惹情思哀怨。