#leetcode#104 Maximum Depth of Binary Tree

</pre>Given a binary tree, find its maximum depth.<p></p><p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:14px; line-height:30px">The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.</p><p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:14px; line-height:30px"></p><p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:14px; line-height:30px">遍历树,深度优先遍历/广度优先遍历</p><p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:14px; line-height:30px">深度优先遍历 DFS</p><p style="margin-top:0px; margin-bottom:10px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; font-size:14px; line-height:30px"></p><p><pre name="code" class="cpp">class Solution {
public:
    int maxDepth(TreeNode* root) {
    if(root==NULL) return 0;
        int left=maxDepth(root->left);
        int right=maxDepth(root->right);
        return left>right?left+1:right+1;   
    }
};




广度优先遍历 BFS

构造一个队列记录根节点来实现BFS

if(root == NULL) return 0;  
        queue<TreeNode*> que;  
        que.push(root);  
        int count = 1;  
        int depth = 0;  
        while(!que.empty())  
        {  
            TreeNode* tmp = que.front();  
            que.pop();  
            count--;  
  
            if(tmp->left)  
                que.push(tmp->left);  
            if(tmp->right)  
                que.push(tmp->right);  
            if(count == 0)  
            {  
                depth++;  
                count=que.size();  
            }  
        }  
        return depth; 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值