輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
思路是這樣的:如果乙個二叉樹只有乙個節點,則其度為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
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。二叉樹四種基本的遍歷思想為 前序遍歷 根結點 左子樹 右子樹 中序遍歷 左子樹 根結點 右子樹 後序遍歷 左子樹 右子樹 根結點 層...