1 /** 2 * Definition for binary tree 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 public: 12 int minDepth(TreeNode *root) { 13 if (!root) return 0; 14 queue<TreeNode *> q; 15 q.push(root); 16 int current = 1, future = 0, level = 1; 17 while (!q.empty()) { 18 TreeNode *tmp = q.front(); 19 q.pop(), current--; 20 if (!tmp->left && !tmp->right) return level; 21 if (tmp->left) { 22 q.push(tmp->left); 23 future++; 24 } 25 if (tmp->right) { 26 q.push(tmp->right); 27 future++; 28 } 29 if (!current) { 30 current = future; 31 future = 0; 32 level++; 33 } 34 } 35 } 36 };
时间: 2024-10-12 20:27:42