LeetCode 之 Minimum Depth of Binary Tree

来源:互联网 发布:沈飞 成飞 知乎 编辑:程序博客网 时间:2024/06/05 19:50

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.

BST中深度的问题,我们可以递归(DFS),也可以迭代解决(BFS),我习惯性用迭代,主要是用习惯了。需要注意的是,判断条件是叶子节点,不是左右子树,代码如下:

class Solution {public:    int minDepth(TreeNode* root) {        if(root==NULL) return 0;        //if(root->left&&!root->right||!root->left&&root->right) return 2;        queue<TreeNode*> A;        A.push(root);A.push(NULL);        int depth=1;        while(!A.empty()){            auto B=A.front();            if(B==NULL){                depth++;A.pop();            }            else{                if(!B->left&&!B->right) return depth;                else {                    if(B->left) A.push(B->left);                    if(B->right) A.push(B->right);                    A.pop();                    if(A.front()==NULL) A.push(NULL);                }            }        }        return depth;    }};

0 0
原创粉丝点击