根據前序和中序,重建二叉樹

2021-10-04 13:40:18 字數 1030 閱讀 4407

具體的思路就是遞迴,遍歷中序陣列,在前序中找相同的。因為前序是"根左右",而中序是』左根右",所以中序中匹配的前序數字的前面所有數字都是該樹的左節點,而後面的數字就是該樹的右節點

這裡是主要的邏輯

node node =

newnode

(preorder[prestart]);

for(

int i = instart;i <= inend;i++)}

return node;

class

node

public

void

println

(node root)}}

public

class

rebuildbinarytree

public node tobuild

(int

preorder,

int[

] inorder,

int prestart,

int preend,

int instart,

int inend)

node node =

newnode

(preorder[prestart]);

for(

int i = instart;i <= inend;i++)}

return node;

}public

static

void

main

(string[

] args)

;int

inorder =

; node node =

newrebuildbinarytree()

.build

(preorder, inorder)

; system.out.

println

(node);}

}

根據前序和中序重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。include include include include define n 100 using namespace std s...

根據前序和中序重建二叉樹

解題思路 根據前序遍歷的特點 根,左,右 得出前序遍歷的第乙個節點就是整棵樹的根 根據中序遍歷的特點 左,根,右 找到中序遍歷中和根節點相同的節點,也就是根節點的位置 在中序中,根節點左邊的為整棵樹的左子樹,根節點後邊的為整棵樹的右子樹,同時也就確定了左右子樹的數量 在前序遍歷和中序遍歷中劃分了左右...

根據前序和中序遍歷重建二叉樹

include stdafx.h include include include using namespace std 重建二叉樹 題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹.假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字.例如 輸入前序遍歷序列和中序遍歷序列,則重建出圖...