lintcode 155 二叉樹的最小深度

2022-03-29 14:43:08 字數 905 閱讀 7440

給定乙個二叉樹,找出其最小深度。

二叉樹的最小深度為根節點到最近葉子節點的距離。

樣例給出一棵如下的二叉樹:

這個二叉樹的最小深度為 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型別的函式來判斷二叉樹是否等價...