輸入兩個鍊錶,找出它們的第乙個公共結點。(注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的)
/**
* definition for singly-linked list.
* class listnode
* }*/public
class
solution
listnode meetnode =
meetingnode
(head);if
(meetnode == null)
listnode fast = head;
listnode slow = meetnode;
while
(slow != fast)
return slow;
}//尋找相遇節點,如果無環,返回null
public listnode meetingnode
(listnode head)
}return null;
}}
兩個鍊錶第乙個公共節點
先讓長的鍊錶的指標先走長的之差的步數,兩個再一起走,如果相遇就是第乙個公共節點 如果沒交點,就都走到空 struct listnode class solution while pl2 null 復位指標到頭節點 pl1 phead1 pl2 phead2 int dif len 0 if len1...
鍊錶操作 求兩個鍊錶的第乙個公共節點
牛客 兩個鍊錶的第乙個公共節點 分別求兩個單鏈表的長度,len1 和 len2,計算長度差 len 然後讓長的鍊錶先走 len 步,此時p1 和 p2 鍊錶剩餘長度相同p1 和 p2 同時走,直到 p1 p2 若有共同節點,p1 null,否則 p1 為 null public class solu...
八 求兩個鍊錶的第乙個公共結點
輸入兩個鍊錶,找出它們的第乙個公共結點。一般的思路是找出兩個鍊錶 長度的差值,然後長的先跑完差值,最後和著短的鍊錶一起跑,這樣必然能夠來到第乙個公共結點 但是這裡有個問題,就是不能夠保證這個鍊錶是無環的,如果有環的話,在判斷鍊錶長度差值的時候,因為一直不能得到null,所以會陷入死迴圈。所以可以先判...