劍指offer 3 重建二叉樹

2021-10-01 12:37:07 字數 799 閱讀 2622

/**

* 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。

* 假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。

* 例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

*/

思路:

/**

* 根據前序序列第乙個結點確定根結點

* 根據根結點在中序序列中的位置分割出左右兩個子串行

* 對左子樹和右子樹分別遞迴使用同樣的方法繼續分解

*/

解題:

//樹的結點  

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一般在最前 中...