leetcode資料結構學習 4 相交鍊錶

2021-10-25 22:07:46 字數 705 閱讀 4099

編寫乙個程式,找到兩個單鏈表相交的起始節點。

注意:雙指標法:

首先兩個鍊錶相交,交點後的長度是相同的。用兩個指標a,b分別指向heada,headb,令他們共同移動,一步一格,則他們走的路程長度必是相等的。若當他們移動到指向同乙個結點即他們相遇時,那麼這個節點就是相交的結點。那麼怎麼讓他們相遇呢?

我們知道兩個指標在指向結點之後走的路程是相同的,只要讓他們在節點之前走的路程相同就行了。

指標 pa 指向 a 鍊錶,指標 pb 指向 b 鍊錶,依次往後遍歷

如果 pa 到了末尾,則 pa = headb 繼續遍歷

如果 pb 到了末尾,則 pb = heada 繼續遍歷

比較長的鍊錶指標指向較短鍊錶head時,長度差就消除了

如此,只需要將最短鍊錶遍歷兩次即可找到位置

/**

* definition for singly-linked list.

* struct listnode ;

*/struct listnode *

getintersectionnode

(struct listnode *heada,

struct listnode *headb)

return a;

}

在while迴圈中,若是a與b無交點,則a不會與b相遇,那麼while會一直迴圈下去,那程式就不會停止了???

《資料結構》學習筆記(4)

include using namespace std c 中有兩種函式 常規函式和成員函式 定義都包括四個部分 函式名,形式參數列,返回型別和函式體。引數傳遞的兩種方式 傳值 預設的引數傳遞方式 引用型別。使用引用方式將大大節省傳遞引數時間,並可節省儲存引數物件的副本空間。int squareby...

資料結構學習4 樹(一)

非線性結構,乙個直接前驅,但可能有多個直接後繼 1 n 樹的定義具有遞迴性,即樹中還有樹 樹的度所有結點度中的最大值 max 樹的深度指所有結點中最大的層數 max 圖形表示法 廣義表表示法 左孩子 右兄弟表示法 雙親孩子表示法 二叉樹的結構最簡單,規律性最強 可以證明,所有樹都能轉為唯一對應的二叉...

資料結構學習

什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...