java遞歸生成樹(shù)形結(jié)構(gòu) JAVA中能夠?qū)崿F(xiàn)方法的遞歸調(diào)用嗎?如何實(shí)現(xiàn)?
JAVA中能夠?qū)崿F(xiàn)方法的遞歸調(diào)用嗎?如何實(shí)現(xiàn)?是的。所有的遞歸都可以通過(guò)循環(huán)來(lái)實(shí)現(xiàn)。遞歸可能導(dǎo)致堆棧溢出。在實(shí)際過(guò)程中,推薦使用循環(huán)。以二叉樹(shù)的前序遍歷為例:遞歸實(shí)現(xiàn)非遞歸實(shí)現(xiàn)前序遍歷,先根,后左,后
JAVA中能夠?qū)崿F(xiàn)方法的遞歸調(diào)用嗎?如何實(shí)現(xiàn)?
是的。所有的遞歸都可以通過(guò)循環(huán)來(lái)實(shí)現(xiàn)。遞歸可能導(dǎo)致堆棧溢出。在實(shí)際過(guò)程中,推薦使用循環(huán)。
以二叉樹(shù)的前序遍歷為例:
遞歸實(shí)現(xiàn)
非遞歸實(shí)現(xiàn)
前序遍歷,先根,后左,后右;中序遍歷,先左,后根,后右。
前序遍歷序列的第一個(gè)節(jié)點(diǎn)是根節(jié)點(diǎn),表示為a。在前序遍歷序列中,根節(jié)點(diǎn)的左子樹(shù)在a之前,根節(jié)點(diǎn)的右子樹(shù)在a之后。找出前序和中序中的左、右子樹(shù)的子序列,遞歸只能重建二叉樹(shù)的結(jié)構(gòu),也決定了后續(xù)遍歷的順序。
Reference
根據(jù)給定的按序和前序遍歷構(gòu)造樹(shù)-geeks for geeks