思路:使用輔助棧改寫遞迴程式,中序遍歷沒有前序遍歷好寫,其中之一就在於入棧出棧的順序和限制規則。我們採用「左根右」的訪問順序可知主要由如下四步構成。
步驟:1.首先需要一直對左子樹迭代並將非空節點入棧
2.節點指標為空後不再入棧
3.當前節點為空時進行出棧操作,並訪問棧頂節點
4.將當前指標p用其右子節點替代
步驟2,3,4對應「左根右」的遍歷結構,只是此時的步驟2取的左值為空。
/**
* definition for a binary tree node.
* public class treenode
* }*/public class solution else
}return result;
}}
二叉樹遍歷之中序遍歷
1.遞迴思想 思路 1.對根結點的左子樹進行中序遍歷 2.對根結點進行訪問 3.對根結點的右子樹進行中序遍歷。參考 遞迴遍歷二叉樹 const treenode right right right var midorderrecur function root else midorder root ...
非遞迴中序遍歷二叉樹
非遞迴中序遍歷二叉樹 include define maxsize 100 typedef char datatype 二叉鍊錶型別定義 typedef struct binnode binnode,bintree 順序棧型別定義 typedef struct seqstk 初始化棧 int ini...
二叉樹中序非遞迴遍歷
definition for a binary tree node.struct treenode class solution else return out 中序非遞迴遍歷de演算法思想 根據中序遍歷的順序,對於任意乙個結點,優先訪問左孩子,再繼續訪問該左孩子的左孩子,然直到遇到左孩子結點為空的...