天天看点

LeetCode 111 Minimum Depth of Binary TreeLeetCode 111

LeetCode 111

Minimum Depth of Binary Tree

  • Problem Description:

    给出一棵二叉树,输出二叉树中从根节点到最近叶节点所经过的节点数。

    具体的题目信息:

    https://leetcode.com/problems/minimum-depth-of-binary-tree/description/

  • Example:
    LeetCode 111 Minimum Depth of Binary TreeLeetCode 111
  • Solution:
    • 解题思路:

      通过二叉树的层次遍历实现,当遍历过程中发现第一个叶节点(即距离根节点最近的叶节点),输出当前的层数即可。

    • 编程实现:
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int minDepth(TreeNode* root) {
        if (root == NULL) return ;
        if (root->left == NULL&&root->right == NULL) return ;
        TreeNode* node[];
        int front = -, rear = -;
        int last = , level = , flag = ;
        node[++rear] = root;
        while(front<rear) {
            TreeNode* temp = node[++front];
            if (temp->left == NULL&&temp->right == NULL) {
                level++;
                break;
            }
            if (temp->left) {
                node[++rear] = temp->left;
            }
            if (temp->right) {
                node[++rear] = temp->right;
            }
            if (front == last) {
                level++;
                last = rear;
            }
        }
        return level;
    }
};