Lintcode67 Binary Tree Inorder Traversal solution 題解

【題目描述】

Given a binary tree, return the inorder traversal of its nodes' values.

給出一棵二叉樹(shù),返回其中序遍歷

【題目鏈接】

www.lintcode.com/en/problem/binary-tree-inorder-traversal/

【題目解析】

遞歸版

最好理解,遞歸調(diào)用時(shí)注意返回值和遞歸左右子樹(shù)的順序即可。

迭代版

使用輔助棧,空間復(fù)雜度O(n),時(shí)間復(fù)雜度O(n).

中序遍歷沒(méi)有前序遍歷好寫,其中之一就在于入棧出棧的順序和限制規(guī)則。我們采用「左根右」的訪問(wèn)順序可知主要有如下四步構(gòu)成。

1.首先需要一直對(duì)左子樹(shù)迭代并將非空節(jié)點(diǎn)入棧

2.節(jié)點(diǎn)指針為空后不再入棧

3.當(dāng)前節(jié)點(diǎn)為空時(shí)進(jìn)行出棧操作,并訪問(wèn)棧頂節(jié)點(diǎn)

4.將當(dāng)前指針p用其右子節(jié)點(diǎn)替代

步驟2,3,4對(duì)應(yīng)「左根右」的遍歷結(jié)構(gòu),只是此時(shí)的步驟2取的左值為空。

【參考答案】

www.jiuzhang.com/solutions/binary-tree-inorder-traversal/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容