/**
* 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。
* 假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。
* 例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。
*/
思路:
/**
* 根據前序序列第乙個結點確定根結點
* 根據根結點在中序序列中的位置分割出左右兩個子串行
* 對左子樹和右子樹分別遞迴使用同樣的方法繼續分解
*/
解題:
//樹的結點
static
class
treenode
}
//使用遞迴重建這棵樹
//pre為前序遍歷陣列,in為中序遍歷陣列
public
static treenode reconstructbinarytree
(int
pre,
int[
] in)
//把前序的第乙個結點做為根結點
treenode root =
newtreenode
(pre[0]
);//找到該根結點的結點
for(
int i =
0; ireturn root;
}
說明:
arrays.copyofrange(target,i,j)
是擷取目標陣列,重第i個位置帶第j個位置
劍指offer 3 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。前序遍歷 根節點 左子樹 右子數 中序遍歷 左子樹 根節點 右子樹 根節點 前序遍歷的第乙個數 在中序遍歷中找到根節點的值,假設該位...
劍指offer專題 3重建二叉樹
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m 熱度指數 927385 本題知識點 樹 題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。c...
4 重建二叉樹(劍指offer)
4.重建二叉樹 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。1 思路 通常樹有如下幾種遍歷方式 前序遍歷 先訪問根結點,再訪問左子結點,最後訪問右子結點。root一般在最前 中...