重建二叉樹 牛客

2021-09-01 09:13:50 字數 674 閱讀 4049

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

首先講一下對二叉樹幾種遍歷的記憶理解方法,主要是結點的序列位置不同。

根據前序遍歷的特點,樹的根結點一定在第一位;中序遍歷的特點,根結點左邊的為左子樹,右邊的為右子樹。根據動態規劃的思想,將問題又分為左子樹和右子樹的根結點查詢,遞迴方式正好解決子問題求解。

重建二叉樹(牛客網)

從前序遍歷和中序遍歷重建乙個二叉樹。步驟如下 1 根據前序遍歷的第乙個元素建立根節點 2 在中序遍歷找到這個元素,左邊的元素都是根節點的左子樹的結點,右邊的元素都是右子樹的結點 3 在前序遍歷中找到屬於左右子樹的前序序列 4 左子樹重複123 5 右子樹重複123 6 返回根節點 例如前序遍歷序列和...

牛客《劍指Offer》 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹原本可以用遞迴的方式定義,所以面對此類問題注意向遞迴的思想靠攏。將整棵樹的構造過程視為對其左右子樹的構造過程,關鍵如何劃分子樹...

牛客 4 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 1 找到中序遍歷中根節點的索引i 2 在前序遍歷序列中,找到根節點的左子樹和右子樹 3 在中序遍歷序列中,找到根節點的左子樹和...