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

2021-08-03 16:50:43 字數 579 閱讀 4101

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。

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

public class solution ;

int in = ;

treenode root = reconstructbinarytree(pre, in);

print(root); }

public static treenode reconstructbinarytree(int pre,int in)

private static treenode construct(int pre, int in, int index, int l, int r)

private static int indexof(int target, int arr)

return -1;

}//節點

static class treenode }

public static void print(treenode p)

}

根據先序遍歷和中序遍歷建立二叉樹

先序遍歷的順序是根左右,中序遍歷的順序是左根右。根據這一特性,先序遍歷的第乙個元素肯定是根節點。所以我們只要在中序遍歷中找到該根節點的值,根節點以左就是它的左子樹,根節點以右就是它的右子樹,然後就可以遞迴的方式建立二叉樹 假設現在有一顆二叉樹如下 先序序列為 18,14,7,3,11,22,35,2...

根據二叉樹的先序遍歷和中序遍歷建立二叉樹

根據二叉樹的先序遍歷和中序遍歷建立二叉樹 rebacktree 根據二叉樹的先序遍歷和中序遍歷建立二叉樹。rebacktree1 根據二叉樹的後序序遍歷和中序遍歷建立二叉樹。include stdio.h include stdlib.h typedef struct node node,nodep...

根據二叉樹的先序和中序遍歷輸出層序遍歷

寫一下我的乙個思路,coding就不貼了。如何分割先序和後序的方法可以看我輸出後序遍歷那篇部落格,這裡只談談分割後怎麼遞迴能得到層次遍歷的方法。當然方法有很多,我這裡提供一種暴力一點,通用一點的方法。我給這種方法起了個名字叫標籤繫結法。所謂標籤繫結,就是我在把元素新增到result列表的時候,不是直...