練習題之重建二叉樹

2021-08-29 12:18:53 字數 867 閱讀 3525

題目:

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

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

例如輸入前序遍歷序列和中序遍歷序列,

則重建二叉樹並返回。

**實現:

/**

* definition for binary tree

* public class treenode

* }*///遞迴實現

public class solution

//前序:

//中序:

public treenode reconstructbinarytree1(int pre,int startpre,int endpre,int in,int startin,int endin)

//根據前序遍歷的特點可以找出根節點

treenode root=new treenode(pre[startpre]);

for(int i=startin;i<=endin;i++)

,中序:

左子樹第一次起始位置下標:中序:1~3,後序:0~2

右子樹第一次起始位置下標:中序:4~7,後序:4~7

然後依次遞迴實現。

*/root.left=reconstructbinarytree1(pre,startpre+1, startpre+i-startin,in,startin,i-1);

root.right=reconstructbinarytree1(pre,i+1+startpre-startin,endpre,in,i+1,endin);}}

return root;

}}

二叉樹習題之重建二叉樹

對於給定前序和中序的重建方法。1 前序的第乙個元素一定是樹的根節點,在中序集合中找到此元素,那麼該元素的左面即為根的左子樹,右面為右子樹。2 找到前序的第二個元素,重複上面的步驟。自寫程式的效率大概為 n n 2 或最大的那個元素 這點很坑,斟酌改掉 目前沒發現更快的寫法 自己寫 結果以連續記憶體的...

二叉樹練習題及解析

1 某二叉樹的前序序列和後序序列正好相反,則該二叉樹一定是 的二叉樹。答 高度等於其節點數 解析 前序遍歷順序是 m l r 後序遍歷的順序是 l r m 其中l r的相對位置不發生變化,變化的是m的位置。題目指出二叉樹的先序序列和後序序列結果正好相反 當二叉樹只有乙個節點時,只有m,l和r為空,滿...

資料結構 二叉樹練習題

求二叉樹的高度 只能彙總思想 int getheight node root int left getheight root.left int right getheight root.right return math.max left,right 1 求二叉樹第k層結點的個數 彙總 1.利用遞迴...