1.計算二叉樹的深度。可以這樣理解,我們可以去查詢根節點的左子樹的深度和其右子樹的深度,然後比較這兩個誰大。如果
左子樹的深度大於右子樹,那麼我們可以把左子樹的深度加1就是整個樹的深度,相反如果右子樹的深度大於左子樹的深度,
那麼可以把右子樹的深度加1表示是整個樹的深度。按照這個思想,我們可以再把如何求左子樹的深度也分成求左子樹的左
子樹的深度和其右子樹的深度,然後比較出那個深度大,讓其加1就是左子樹的深度了。所以這個求其深度的問題就是乙個
遞迴的演算法了。下面是c++演算法:
166
template
<
typename t>
int linkedbinarytree
::height
(binarytreenode
*t)
2.求整個數的所有節點個數,其實就是遍歷整個樹,然後把遍歷的輸出變成將元素個數加一就好了,下面是**:
//利用前向遍歷去計算個數,其中count是類linkedbinarytree的乙個保護成員
111template
<
typename t>
void linkedbinarytree
::preorder
(binarytreenode
*t)117
}
計算二叉樹的深度
給定一棵二叉樹的先序遍歷序列和中序遍歷序列,要求計算該二叉樹的深度。輸入格式 輸入首先給出正整數n 50 為樹中結點總數。下面兩行先後給出先序和中序遍歷序列,均是長度為n的不包含重複英文本母 區別大小寫 的字串。輸出格式 輸出為乙個整數,即該二叉樹的高度。輸入樣例 9 abdfghiec fdhgi...
計算二叉樹的個數
給定二叉樹的節點個數來計算能夠構成多少種不同的二叉樹。採用的是遞迴的思想來解決這類問題。1 因為採用遞迴的思想,我們的結束條件就是當節點個數為0.此時節點個數為0的情況,這時候構成的樹的情況為空樹,即二叉樹的個數是1.2 因為是二叉樹,我們只需要分為兩邊來計算。即滿足這樣的條件,從根節點下來,能夠成...
二叉樹的深度 二叉樹的深度
題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...