zoukankan      html  css  js  c++  java
  • 104. 二叉树的最大深度

    题目描述: 给定一个二叉树,找出其最大深度。
    二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
    说明:叶子节点是指没有子节点的节点。
    示例:
    给定二叉树 [3,9,20,null,null,15,7],返回深度为3

    • 深度优先遍历:先序遍历,可递归,可用栈
    //C 递归
    
    int maxDepth(struct TreeNode* root){
        if(root == NULL) return 0;
        else if(root -> left == NULL && root -> right == NULL) return 1;
        else {
            int lheight = 0, rheight = 0;
            lheight = maxDepth(root -> left);
            rheight = maxDepth(root -> right);
            return lheight > rheight ? lheight + 1 : rheight + 1;
        }
        
    }
    
    //栈
    

      

    • 层次优先遍历:二叉树的高度即二叉树层数,使用lastNode遍历记录每一层的最后一个结点,使用curNode遍历记录当前遍历到的结点,当出栈结点和lastNode相同时证明已经遍历到每一层的最后一个结点了,层数加一,更新lastNode位curNode。
    //JS
    
    var maxDepth = function(root) {
        if(!root) return 0;
        let level = 0, queue = [], lastNode, curNode, node;
        queue.push(root);
        lastNode = root;
        while(queue.length != 0){
            node = queue.shift();
            if(node.left) {
                queue.push(node.left);
                curNode = node.left;
            }
            if(node.right) {
                queue.push(node.right);
                curNode = node.right;
            }
            if(lastNode == node) {
                level++;
                lastNode = curNode;
            }
        }
        return level;
    };
    

      

  • 相关阅读:
    一些关于poi导入的样例
    一些常用的js,jquerry 样例
    Spring MVC使用@ResponseBody返回JSON数据406以及乱码问题解决方案
    最近用的几个sql语句
    读写配置文件
    vtk-py z-Buffer可见算法
    vtk-py求3d模型表面积
    VTK-py读取与显示相关函数
    833系列——二叉排序树
    三维空间判断线与三角形相交
  • 原文地址:https://www.cnblogs.com/JesseyWang/p/13099650.html
Copyright © 2011-2022 走看看