題目:輸入某二叉樹的連續遍歷和後序遍歷結果,請重建此二叉樹.輸出它的頭結點.(假設輸入的前序遍歷和後序遍歷結果中都不含重複數字)
分析:
**:
public
class
solution
/*** 構造出二叉樹的方法
* *@param pre
* 子樹的前序遍歷陣列
*@param startpre
* 子樹的前序遍歷陣列第乙個數在pre陣列中的索引
*@param endpre
* 子樹前序遍歷陣列最後乙個數在pre陣列中的索引
*@param in
* 子樹的中序遍歷陣列
*@param startin
* 子樹的中序遍歷陣列第乙個數在pre陣列中的索引
*@param endin
* 子樹中序遍歷陣列最後乙個數在pre陣列中的索引
*@return root 根節點
*/private treenode reconstructbinarytree(int pre, int startpre, int endpre,
int in, int startin, int endin)
return root;
}}
難點:遞迴函式的引數是本題目的乙個難點,要分析出
root.left = reconstructbinarytree(pre, startpre + 1, startpre + i - startin, in, startin, i - 1);
root.right = reconstructbinarytree(pre, startpre+(i-startin)+1, endpre, in, i + 1, endin);
}
確實不是一件容易的事情. 劍指offer 面試題6 重建二叉樹
題目 輸入某二叉樹的前序遍歷和中序遍歷,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含有重複的數字。例如,前序遍歷序列 1,2,4,7,3,5,6,8 中序遍歷序列 4,7,2,1,5,3,8,6 則重建出的二叉樹如下所示,並輸出它的頭結點1。基本思想 前序遍歷 前序遍歷首先訪問根結點...
劍指offer《面試題6 重建二叉樹》
題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建出下圖所示的二叉樹並輸出它的頭結點。1 2 3 4 5 6 7 8 劍指offer 名企面試官精講典型程式設計題 著作權所有者 何海濤 inc...
劍指offer 面試題6重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。重建出二叉樹,並輸出根節點。二叉樹的定義如下 如上,前序遍歷 1,2,4,7,3,5,6,8,中序 4,7,2,1,5,3,8,6,後序遍歷 7,4,2,5,8,6,3,1 在二叉樹的前序...