lintcode 380 兩個鍊錶的交叉

2021-10-02 15:25:45 字數 914 閱讀 9342

請寫乙個程式,找到兩個單鏈表最開始的交叉節點。

樣例

樣例 1:

輸入: a: a1 → a2

↘c1 → c2 → c3

b: b1 → b2 → b3

輸出:c1

解釋:在節點 c1 開始交叉。

樣例 2

:輸入:

intersected at 61-

>2-

>3-

>4-

>5-

>6-

>7-

>8-

>9-

>10-

>11-

>12-

>13-

>null6-

>7-

>8-

>9-

>10-

>11-

>12-

>13-

>null

輸出: intersected at 6

解釋:begin to intersect at node 6.

挑戰需滿足 o

(n) 時間複雜度,且僅用 o(1

) 記憶體。

注意事項

如果兩個鍊錶沒有交叉,返回null。

在返回結果後,兩個鍊錶仍須保持原有的結構。

可假定整個鍊錶結構中沒有迴圈。

/**

* definition of singly-linked-list:

* class listnode

* }*/class

solution

while

(headb)

return

null;}

};

LintCode 380 兩個鍊錶的交叉

請寫乙個程式,找到兩個單鏈表最開始的交叉節點。注意事項 樣例 下列兩個鍊錶 a a1 a2 c1 c2 c3 b b1 b2 b3在節點 c1 開始交叉。思路 1.鍊錶1從頭節點開始,走到最後乙個節點 不是結束 統計鍊錶1的長度記為len1,同時一記錄鍊錶1的最後乙個節點記為cura 2.鍊錶2從頭...

lintcode練習 380 兩個鍊錶的交叉

請寫乙個程式,找到兩個單鏈表最開始的交叉節點。下列兩個鍊錶 a a1 a2 c1 c2 c3 b b1 b2 b3在節點 c1 開始交叉。需滿足 o n 時間複雜度,且僅用 o 1 記憶體。第一步 得到a,b的長度,和a,b的最後乙個節點enda,endb 第二步 對enda,endb進行判斷,如果...

合併兩個排序鍊錶 LintCode

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶。樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。思路 這道題其實跟上一道鍊錶的插入排序是親兄弟啊,在鍊錶的插入排序裡面我們自己建立了新的鍊錶dummy用來存放我們的排好序的鍊錶,這道題裡給出的兩條鍊錶都是...