1、可以同時使用多個指標。
需要同時跟蹤多個節點,要記住跟蹤哪些節點,並可以自由使用幾個不同的節點指標來同時跟蹤這些節點。
同時使用多個節點,取適當的名稱,以便除錯**。
2、需要跟蹤當前節點的前乙個節點。
無法追溯到鍊錶的前乙個節點,因此不僅要儲存當前節點,還要儲存前乙個節點。雙鏈表不同。
3、雙鏈表:多乙個引用字段,prev,能夠知道當前節點 的前乙個節點。
4、雙鏈表新增節點cur:
連線cur 與 (指向)prev和 next,再cur 與(被指向) prev和 next重新連線。
5、雙鏈表刪除節點cur:
prev和next連起來。
6、小結:
經常新增或刪除節點——鍊錶;
經常按索引訪問元素——陣列。
經典鍊錶問題
題目描述 在單鏈表中輸出倒數第k個節點 要求 如果鍊錶長為n,時間複雜度為o n 額外空間複雜度達到o 1 思路 當我們用num來表示鍊錶中節點個數,當我們輸出節點的時候會出現三種情況 不存在第k個節點,此時返回空 num第k個節點就是第乙個節點,操作較容易 num k 第k個節點在鍊錶中 num ...
鍊錶經典問題彙總
原帖位址 收集了一下鍊錶常見的面試題 1 如何判斷乙個單鏈表有環 2 如何判斷乙個環的入口點在 3 如何知道環的長度 4 如何知道兩個單鏈表 無環 是否相交 5 如果兩個單鏈表 無環 相交,如何知道它們相交的第乙個節點是什麼 6 如何知道兩個單鏈表 有環 是否相交 7 如果兩個單鏈表 有環 相交,如...
鍊錶的經典問題
如果兩個單鏈表相交,那應該呈 y 字形,也就是從交點以後的部分是兩個鍊錶的公共節點。所以,判斷是否相交只要看兩個鍊錶的最後乙個節點是否為同乙個即可。那麼如何找到交點呢?設兩個單鏈表的長度分別為l1 l2,假設l1 l2 則 l1 l2 的值就是交匯之前兩個鍊錶的長度差 因此,只有讓更長的鍊錶先走l1...