1: /**
2: * Definition for a binary tree node.
3: * struct TreeNode {
4: * int val;
5: * TreeNode *left;
6: * TreeNode *right;
7: * TreeNode(int x) : val(x), left(NULL), right(NULL) {}
8: * };
9: */
10: class Solution {
11: private:
12: int minD = INT_MAX;
13: public:
14: int minDepth(TreeNode* root) {
15: if (root == NULL) return 0;
16: helper(root, 1);
17: return minD;
18: }
19: void helper(TreeNode *root, int depth) {
20: if (root->left == NULL && root->right == NULL) { minD = min(minD, depth); return; }
21: if (root->left) helper(root->left, depth+1);
22: if (root->right) helper(root->right, depth+1);
23: }
24: };
Wednesday, August 10, 2016
111. Minimum Depth of Binary Tree
I was computing the depth from bottom to top which means you’ll have many redundant calls because you call h times from the root to get the depth and you’ll call h-1 times again from the left child to a leaf. Actually the h-1 times can be avoided if we compute the depth from top to bottom.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment