[Leetcode] Minimum Depth of Binary Tree
阿新 • • 發佈:2018-02-03
題解 pro ber null uri its empty solution ems
Minimum Depth of Binary Tree 題解
題目來源:https://leetcode.com/problems/minimum-depth-of-binary-tree/description/
Description
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
Solution
class Solution {
private :
struct Task {
TreeNode *node;
int depth;
Task(TreeNode *n, int d) : node(n), depth(d) {}
};
public:
int minDepth(TreeNode* root) {
if (!root) {
return 0;
}
queue<Task> q;
q.push(Task(root, 1));
while (!q.empty()) {
Task task = q.front();
q.pop();
TreeNode *node = task.node;
if (node -> left == NULL && node -> right == NULL) {
return task.depth;
}
if (node -> left)
q.push(Task(node -> left, task.depth + 1));
if (node -> right)
q.push(Task(node -> right, task.depth + 1 ));
}
}
};
解題描述
這道題題意是要求一棵二叉樹的最小深度,解法是使用BFS,由於是自頂向下逐層掃描,得到的第一個葉子節點必定是深度最小的點,返回其高度即可。
[Leetcode] Minimum Depth of Binary Tree