《劍指Offer》面試題56 鍊錶中環的入口節點

2022-04-29 12:15:09 字數 486 閱讀 4931

題目:乙個鍊錶中包含環,如何找出環的入口節點?

1.首先判斷該鍊錶中是否存在環(使用快慢指標來判斷);

2.如果存在環,設環的節點為m個,快指標經過的節點數為2n個,慢指標經過的節點為n個,那麼快指標所走的節點為n2比慢指標n1走的節點數多m(即2n=m+n)個,所以n1和n2相交的位置為鍊錶的第n個節點,重置n1或者n2都可以找到環的入口。

package com.test20160709;

/** * created by yan on 2016/7/9.

*/public

class

entrynodeofloop

}public listnode entrynodeofloop(listnode phead)

n1 = phead;

while (n1!=n2)

return n1;

}}

劍指 offer 系列 面試題5, 6

面試題 5 替換空格 思路一 時間複雜度為 o n2 的解法。考慮怎麼替換的操作,最直觀的方法是從頭到尾掃瞄字串,每次碰到空格後進行替換。由於是把 1 個字元替換成 3 個字元,必須將後面的向後移兩個位元組。假設字串的長度是 n。對每個空格字元,需要移動後面 o n 個字元,因此對於含有 o n 個...

(劍指Offer)面試題56 鍊錶中環的入口結點

乙個鍊錶中包含環,請找出該鍊錶的環的入口結點。1 雜湊表 遍歷整個鍊錶,並將鍊錶結點存入雜湊表中 這裡我們使用容器set 如果遍歷到某個鍊錶結點已經在set中,那麼該點即為環的入口結點 2 兩個指標 如果鍊錶存在環,那麼計算出環的長度n,然後準備兩個指標pslow,pfast,pfast先走n步,然...

劍指offer 面試題16 反轉鍊錶

題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。hint 請務必使用鍊錶 輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為乙個整數n 0 n 1000 代表將要輸入的鍊錶的個數。輸入的第二行包含n個整數t 0 t 1000000 代表鍊錶元素。輸出 對應每個...