LintCode(103)帶環鍊錶 II

2022-03-25 14:06:45 字數 1596 閱讀 2380

給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點的值,如果沒有環,返回null。

您在真實的面試中是否遇到過這個題? yes 樣例

給出-21->10->4->5, tail connects to node index 1,返回10

上一題的高階。

首先,利用快慢指標判斷有無環,若遇到slow == fast時,跳出迴圈;

然後,調整fast=head,slow不變,此時slow與fast同步移動,直至再次相遇,即是鍊錶中環的起始節點。

"""definition of listnode

class listnode(object):

def __init__(self, val, next=none):

self.val = val

self.next = next

"""class solution:

"""@param head: the first node of the linked list.

@return: the node where the cycle begins.

if there is no cycle, return null

"""def detectcycle(self, head):

# write your code here

if head == none or head.next == none:

return none

slow = head

fast = head

while fast != none and fast.next != none:

slow = slow.next

fast = fast.next.next

if slow == fast:

break

if fast != none and fast == slow:

fast = head

while fast != slow:

slow = slow.next

fast = fast.next

return fast

return nonegithub -- python**

/**103 帶環鍊錶 ii

給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點的值,如果沒有環,返回null。

您在真實的面試中是否遇到過這個題? yes

樣例給出 -21->10->4->5, tail connects to node index 1,返回10

*//**

* definition of listnode

* class listnode

* }*/class solution //if

listnode *slow = head, *fast = head;

while(fast && fast->next)

//if

}//while

if(fast && fast == slow)

//while

return fast;

}//if

return null;

}};github -- c++**

LintCode 103 帶環鍊錶 II

給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點的值,如果沒有環,返回null。您在真實的面試中是否遇到過這個題?yes 樣例給出 21 10 4 5,tail connects to node index 1 返回10 挑戰 不使用額外的空間 剛剛寫完帶環鍊錶時搜了些擴充套件 結果劇透了...

LintCode(103)帶環鍊錶 II

給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點的值,如果沒有環,返回null。您在真實的面試中是否遇到過這個題?yes 樣例給出 21 10 4 5,tail connects to node index 1 返回10 上一題的高階。首先,利用快慢指標判斷有無環,若遇到slow fast...

LintCode103 鍊錶是否為環

學而不思則罔,思而不學則殆 描述 給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點,如果沒有環,返回null。樣例樣例 1 輸入 null no cycle 輸出 no cycle 解釋 鍊錶為空,所以沒有環存在。樣例 2 輸入 21 10 4 5,tail connects to nod...