The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
這一題其實跟104. Maximum Depth of Binary Tree 很類似,只是差在一個要最大,一個要最小。
解法也只要稍微調整一下。 當你的左或右的leaf node為0時另外一個就是最小了,因為root不列入計算(求最大時不用考慮)
class Solution { public: int minDepth(TreeNode *root) { if (root == nullptr) { return 0; } if (root->left == nullptr) { return 1 + minDepth(root->right); } if (root->right == nullptr) { return 1 + minDepth(root->left); } return 1 + min( minDepth(root->left), minDepth(root->right) ); } };