給定乙個鍊錶,如果鍊錶中存在環,則返回到鍊錶中環的起始節點的值,如果沒有環,返回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...