劍指Offer 重構二叉樹

2021-09-14 07:22:23 字數 1202 閱讀 9521

/**

* 給定二叉樹的先序遍歷和中序遍歷

* 重新生成二叉樹

*/public

class

reconstructbinarytree

}public treenode reconstructbinarytree

(int

pre ,

int[

] in)

//遞迴得到先序遍歷起止點為prestart和preend,中序遍歷起止點為instart和inend所構成的二叉樹的根節點

private treenode reconstructbinarytree

(int

pre,

int prestart,

int preend,

int[

] in,

int instart,

int inend)

if(index>inend)

root.left =

reconstructbinarytree

(pre,prestart+

1,prestart+index-instart,in,instart,index-1)

; root.right =

reconstructbinarytree

(pre,prestart+index-instart+

1,preend,in,index+

1,inend)

;return root;

}private

void

printtree

(treenode root)

public

static

void

main

(string args)

;int

in =

; reconstructbinarytree reconstructbinarytree =

newreconstructbinarytree()

; treenode treenode = reconstructbinarytree.

reconstructbinarytree

(pre, in)

; reconstructbinarytree.

printtree

(treenode);}

}

劍指offer 重構二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。1.前序遍歷 前序遍歷的規則 先根節點,後左子樹,再右子樹 2.中序遍歷 中序遍歷的規則 先左子樹,後根節點,再右子樹 3.求重構二...

劍指Offer 重構二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建出如下圖所示的二叉樹並輸出它的頭結點。在二叉樹的前序遍歷序列中,第乙個數字總是樹的根結點的值。但在中序遍歷序列中,根結點的值在序列的中間,左...

劍指Offer 重構二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。public class solution public treenode reconstructbinarytree i...