給定乙個二叉樹,找出其最小深度。思路二叉樹的最小深度為根節點到最近葉子節點的距離。
樣例給出一棵如下的二叉樹:
這個二叉樹的最小深度為 2
標籤二叉樹 深度優先搜尋
與 lintcode-97.二叉樹的最大深度 類似,不同的是在返回左右子樹深度時,二叉樹的深度必須是根結點到葉子結點的距離,不能單純的比較左右子樹的遞迴結果返回較小值,因為對於有單個孩子為空的節點,為空的孩子會返回0,但這個節點並非葉子節點,故返回的結果是錯誤的。
因此,當發現當前處理的節點有單個孩子是空時,返回乙個極大值int_max,防止其干擾結果。
code
/**
* definition of treenode:
* class treenode
* }*/class solution
if (root->left == null && root->right == null)
int leftdepth = mindepth(root->left);
int rightdepth = mindepth(root->right);
leftdepth = (leftdepth == 0 ? int_max : leftdepth);
rightdepth = (rightdepth == 0 ? int_max : rightdepth);
return (leftdepth < rightdepth) ? (leftdepth + 1) : (rightdepth + 1);}};
LintCode 155 二叉樹的最小深度
這題需要考慮什麼是最小深度,根節點到最近葉子節點的距離,為了防止乙個子樹為null的情況干擾後續的 math.min dfsmindepth root.left dfsmindepth root.right 運算,將 if root null 當然我看的答案 import tree.treenode...
lintcode練習 155 二叉樹的最小深度
二叉樹的最小深度為根節點到最近葉子節點的距離。是樣例 給出一棵如下的二叉樹 2 3 4 5 這個二叉樹的最小深度為 2 解題思路 利用了二叉樹的層次遍歷的思想,在每一層的遍歷中都判斷一下是否有葉子結點,如果有葉子結點,則返回該層深度。definition of treenode class tree...
LintCode 等價二叉樹
題目描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4 就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。做題思路 本題給出的bool型別的函式來判斷二叉樹是否等價...