鍊錶相關演算法題 面試必備(一)

2021-10-24 06:47:16 字數 2412 閱讀 7225

向單鏈表尾部插入元素

刪除單鏈表中第乙個值為x的節點

刪除單鏈表中的目標節點

從尾到頭列印單鏈表

單鏈表中倒數第k個節點

反轉單鏈表

k個一組反轉翻單鏈表

鍊錶是否有環以及環的入口

struct listnode 

};

listnode*

inserttail

(listnode* phead,

int x)

listnode*

deletefirsttarget

(listnode* phead,

int x)

if(pnode !=

nullptr

) ppre-

>next = pnode-

>next;

return phead;

}

void

deletetargetnode

(listnode*

* phead, listnode* ptarget)

else

if(ptarget ==

*phead)

else

if(pnode !=

nullptr)}

}

//棧

vector<

int>

printlistfromtailtofront

(listnode* phead)

; vector<

int> vec;

stack> nodes;

listnode* pnode = phead;

while

(pnode !=

nullptr

)while

(!nodes.

empty()

)return vec;

}//遞迴

void

printlistfromtailtofront

(listnode* phead, vector<

int>

&vec)

vector<

int>

printlistfromtailtofront

(listnode* phead)

listnode*

findkthnodefromtail

(listnode* phead,

int k)

while

(pfast-

>next !=

nullptr

)return pslow;

}

//迭代

listnode*

reverselist

(listnode* phead)

return ppre;

}//遞迴

listnode*

reverselist

(listnode* phead)

listnode*

reversekgroup

(listnode* phead,

int k)

listnode* pnext = pright-

>next;

pair, listnode*

> result =

reverselist

(pleft, pright)

; ppre-

>next = result.first;

result.second-

>next = pnext;

ppre = result.second;

pleft = pnext;

}return phair-

>next;

}pair, listnode*

>

reverselist

(listnode* pleft, listnode* pright)

return

;}

//判斷是否有環

bool

hascycle

(listnode *phead)

return

false;}

//查詢環的入口

listnode *

detectcycle

(listnode *phead)

return pfast;}}

return

nullptr

;}

剩餘部分見 鍊錶相關演算法題 面試必備(二)

演算法題 鍊錶相關

題目 請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。解析 由於只輸入了需要刪除的節點node,因此無法獲取刪除節點node的前乙個節點pre,從而也就無法將前乙個節點pre指向刪除節點的下乙個節點nex 既然無法通過修改指標完成,那麼肯定要修改鍊錶節點的值...

鍊錶相關演算法

l.add two numbers leetcode 2 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 4...

演算法(鍊錶相關)

以下是鍊錶的一些基礎題目,但是通過這些題目的組合和解決問題的方法可以解決鍊錶的複雜問題,如k個為一組進行鍊錶翻轉就需要翻轉鍊錶的方法,整理基本題目如下方便複習。1.合併兩個有序鍊錶,合併後還是有序鍊錶 class solution elseelseelseelseelseelseelse 給頭節點乙...