(字串)LC相交鍊錶

2021-10-19 07:41:37 字數 528 閱讀 4460

先遍歷一遍鍊錶a,將存在的節點存入雜湊表中,再遍歷鍊錶b,第乙個遇到已經存在的節點,即相交點

public listnode getintersectionnode

(listnode heada, listnode headb)

while

(b != null)

return null;

}

比較巧妙的方法,a和b的長度不同,但a+b和b+a的長度是相同的,因此,依次遍歷a+b和b+a,必定會同時結束,如果a和b相交的話,肯定會在兩次遍歷的過程中,後一段是重合的,那麼第乙個重合點即相交點。

public listnode getintersectionnode

(listnode heada, listnode headb)

return a;

}

參考

字串鍊錶設計

標頭檔案 ifndef link h define link h typedef struct stringnode stringnode 1.向鍊錶尾部插入乙個元素 int tailinsertnode stringnode pnode,char ptaildata 2.遍歷 void print...

(鍊錶)LC環形鍊錶

使用雜湊表記錄已經走過節點,如果遍歷到已經訪問的,則說明有環 public boolean hascycle listnode head return false 對於判斷鍊錶 陣列是否有環,可以使用floyd判環演算法 龜兔賽跑演算法 使用快慢指標,快指標每次走兩步,慢指標每次走一步,如果快指標走...

相交鍊錶 鍊錶

題目 編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with v...