題目描述
輸入兩個鏈表,找出它們的第一個公共結點,(注意因為傳入資料是鏈表,所以錯誤測驗資料的提示是用其他方式顯示的,保證傳入資料是正確的)題目決議:
這道題是什么意思呢?如下圖所示:
其中上面的為第一個鏈表,下面的為第二個鏈表,它們的公共結點指的就是它們結合之處的那個共同的節點,我們可以先將兩個鏈表的Node分別放到不同的list串列里,然后對這兩個串列里的Node進行遍歷,發現如果正好有兩個Node的數值和指向都是相同的的話就查找成功,因為一個Node想要相同的話,需要具有兩個條件,一個條件是:
1.Node當中的數值相同
2.Node當中的指向的是同一個節點
因此代碼如下所示:
class Solution: def FindFirstCommonNode(self, pHead1, pHead2): # write code here list_node_one=[] list_node_two=[] while pHead1: list_node_one.append(pHead1) pHead1=pHead1.next while pHead2: list_node_two.append(pHead2) pHead2=pHead2.next #如果是同一個節點,那么這個節點儲存的下一個節點的地址以及節點里面的值相同 for i in list_node_one: for j in list_node_two: if i.val==j.val and i.next==j.next: return i return None
得解!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2188.html
標籤:其他
