二叉樹的最大深度和最小深度實現

2021-08-04 22:37:48 字數 1221 閱讀 5434

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

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

如果二叉樹為空,則深度為0

如果不為空,分別求左子樹的深度和右子樹的深度,取最大的再加1.

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

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

判斷左子樹或右子樹是否為空,若左子樹為空,則返回右子樹的深度,反之返回左子樹的深度,如果都不為空,則返回左子樹和右子樹深度的最小值。

#include 

#include

#include

using

namespace

std;

class treenode

treenode* createtree(vector

list, int start);

};treenode* treenode::createtree(vector

list, int start)

treenode *root = new treenode(list[start]);

int lnode = 2*start + 1;

int rnode = 2*start + 2;

if(lnode > list.size() - 1)

else

if(rnode > list.size()- 1)

else

return root;

}class solution

if(root->left == null)

if(root->right == null)

int leftdepth = mindepth(root->left) + 1;

int rightdepth = mindepth(root->right) + 1;

return leftdepth < rightdepth ? leftdepth : rightdepth;

}int maxdepth(treenode *root)

int leftdepth = maxdepth(root->left) + 1;

int rightdepth = maxdepth(root->right) + 1;

return leftdepth > rightdepth ? leftdepth : rightdepth;

}};int main()

二叉樹最大深度和最小深度

給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的距離。如果二叉樹為空,則深度為0 如果不為空,分別求左子樹的深度和右子樹的深度,去最大的再加1,因為根節點深度是1,要加進去。int maxdepth treenode root 給定乙個二叉樹,找出其最小深度。二叉樹的最小深度為根...

二叉樹 最大深度和最小深度

leetcode 二叉樹的最大深度 leetcode 二叉樹的最小深度 我們知道完全二叉樹,是可以根據節點數量進行計算出深度的,但是非完成二叉樹呢 他就不滿足了,樹結構體 public class treenode 二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點...

二叉樹的最大深度和最小深度

題目意思很好理解,下面看 獲取二叉樹的最大深度和最小深度 獲取最小深度 func mindepth root treenode int if root.left nil root.right nil 初始化最小值 mind math.maxint32 左子樹最小值 if root.left nil ...