給出前序與中序遍歷 還原二叉樹

2021-09-25 10:00:21 字數 676 閱讀 3201

大佬的實現

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

由前序遍歷可知道,第乙個數是root。

再由中序遍歷可以知道,root前面的為左子樹的中序遍歷,右邊為右子樹的中序遍歷。

回到前序遍歷,左子樹有多少個數(假設為n),除了第乙個是root 後面n個數就是左子樹的前序遍歷。

遞迴思想生成

為了生成新的前序遍歷和中序遍歷,不停的更新左子樹結點數 右子樹節點數和給出新陣列。太過複雜

這個方法利用了4個索引來確定子樹的遍歷陣列,減少了賦值成新陣列的步驟。

而且遍歷總是在陣列中是連續的幾個數。所以可以通過對引數調整來達到找到子樹遍歷陣列的作用。

棒!!!!

public

class

solution

private treenode reconstructbtree

(int

pre,

int startpre,

int endpre,

int[

] in,

int startin,

int endin)

return root;

}}

根據二叉樹前序 中序遍歷還原二叉樹

在學習二叉樹遍歷的時候我們學習了三種遍歷方法 前序 中序 後序 同時我們知道給定前序和中序 中序和後序我們可以還原二叉樹,記得當時只是在紙上畫了一畫。現在把當時的想法完成。給定前序和中序生成二叉樹。include 在學習二叉樹遍歷的時候我們學習了三種遍歷方法 前序 中序 後序 同時我們知道給定前序和...

根據前序 中序 後序遍歷還原二叉樹

參考 首先我們得知道概念 前序遍歷 先訪問當前節點,再訪問當前節點的左子樹,最後訪問當前節點的右子樹。對於二叉樹,深度遍歷與此同。規律 根在前 子樹在根後且左子樹比右子樹靠前,且第乙個就是根節點 中序遍歷 先訪問當前節點的左子樹,然後訪問當前節點,最後是當前節點的右子樹,二叉樹,中序遍歷會得到資料公...

還原二叉樹(前序 中序求二叉樹)

給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的高度。輸入首先給出正整數n 50 為樹中結點總數。下面2行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出為乙個整數,即該二叉樹的高度。此題為利用先序和中序來構造整顆二叉樹,關鍵在於利用先序序列 根左...