zoukankan      html  css  js  c++  java
  • 剑指offer系列——38.二叉树的深度

    Q:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
    A:
    这是很典型的二叉树递归问题。

        int TreeDepth(TreeNode* pRoot){
            if (pRoot == nullptr)
                return 0;
            int l = TreeDepth(pRoot->left);
            int r = TreeDepth(pRoot->right);
            return l > r ? l + 1 : r + 1;
        }
    

    层次遍历方法:

        int TreeDepth(TreeNode* pRoot) {
            if (!pRoot) return 0;
            queue<TreeNode*> que;
            que.push(pRoot);int depth=0;
            while (!que.empty()) {
                int size=que.size();
                depth++;
                for (int i=0;i<size;i++) {      //一次处理一层的数据
                    TreeNode *node=que.front();
                    que.pop();
                    if (node->left) que.push(node->left);
                    if (node->right) que.push(node->right);
                }
            }
            return depth;
        }
    
  • 相关阅读:
    Python 写文件
    Python 读文件
    Python 打开文件(File Open)
    Python 异常处理(Try...Except)
    Python PIP包管理器
    Python 正则表达式(RegEx)
    Python JSON
    Python 模块
    Python 迭代器(Iterator)
    Python 继承
  • 原文地址:https://www.cnblogs.com/xym4869/p/12326775.html
Copyright © 2011-2022 走看看