2023年12月13日 星期三

[111] Minimum Depth of Binary Tree

嗯 ....好吧其實我覺得我現在無法思考中  囧
找最小的深度,和找最深的差別在於,
當深度是0 (就沒有child的時候)需要return 另一個child的長度
舉例為,一個root 一路往右長,root-> left == NULL 的情況
然後就降了?!(?!)
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int depth(struct TreeNode* root, int h)
{
int ret=0;
if (root ==NULL )
return h;
int left = depth(root->left, h+1);
int right = depth(root->right, h+1);
//printf("h=%d, %d %d\n",h, left, right);
if (left == h+1)
ret = right;
else if (right == h+1)
ret = left;
else
ret = (left<right)? left:right;
return ret;
}

int minDepth(struct TreeNode* root) {
return depth(root, 0);
}

沒有留言:

張貼留言