Java演算法 劍指offer 二叉樹的深度

2021-07-27 20:17:38 字數 484 閱讀 5302

輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

思路是這樣的:如果乙個二叉樹只有乙個節點,則其度為1。如果只有左子樹或者右子樹,那麼其深度也就是左(右)子樹的深度加1。

如果兩顆子樹都有的話,就應該是深度較大的那個子樹的值加1。故而,在定義好二叉樹後,只需要在遍歷時稍微修改即可。

public class treenode 

}

**實現:

public int treedepth(treenode root) 

int left = treedepth(root.left);

int right = treedepth(root.right);

if (left > right)

return right + 1;

}

劍指offer 重建二叉樹(java)

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。解題思路 1 根據前序遍歷序列確定根節點 在前序遍歷序列中,第乙個數字總是根的節點值。2 根據中序遍歷序列確定左 右子樹的節點...

劍指offer 重建二叉樹java

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回 前序遍歷 中序遍歷 思路 前序遍歷中第乙個節點一定是根節點,然後是左子樹和右子樹的節點,然後在中序遍歷中找到這個根節點,根節點左側的...

重建二叉數 劍指offer

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹四種基本的遍歷思想為 前序遍歷 根結點 左子樹 右子樹 中序遍歷 左子樹 根結點 右子樹 後序遍歷 左子樹 右子樹 根結點 層...