栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构【力扣-初级算法】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构【力扣-初级算法】

104 求二叉树最大深度
  • 题目
  • 一、如何本地化运行这段代码
    • 1.1 通过数组构建二叉树【层序遍历的思想】
    • 1.2 力扣上提交的最大深度算法【递归角度】
  • 二、完整代码及运行结果
    • 1.完整代码
    • 2. 运行结果
    • 在这里插入图片描述
  • 总结


题目


一、如何本地化运行这段代码 1.1 通过数组构建二叉树【层序遍历的思想】
int array[]={1};
void createTree(struct TreeNode **node,int index)
{
    if(index<=(sizeof (array))/sizeof (int))
    {
        if(array[index-1]==NULL)
        {
            *node=NULL;
            return;
        }
        else
        {
            *node = (struct TreeNode*)malloc(sizeof (struct TreeNode));
            (*node)->val=array[index-1];
            createTree(&((*node)->left),index*2);
            createTree(&((*node)->right),index*2+1);
        }
    }
    else
    {
        *node=NULL;
        return;
    }
}
1.2 力扣上提交的最大深度算法【递归角度】

//递归判断方法
int maxDepth(struct TreeNode *node)
{
  	if(node==NULL)
  	{
  		return 0;
  	}
    
    int left_length = maxDepth(node->left)+1;
    int right_length = maxDepth(node->right)+1;
    
   return (left_length>=right_length)?left_length:right_length;
}
二、完整代码及运行结果 1.完整代码


#include 
#include 

struct TreeNode{
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
};

//DFS
//递归判断方法
int maxDepth(struct TreeNode *node)
{
    if(node==NULL)
    {
        return 0;
    }

    int left_length = maxDepth(node->left)+1;
    int right_length = maxDepth(node->right)+1;

    return (left_length>=right_length)?left_length:right_length;
}



//根据数组构造二叉树,层序遍历所创建
int array[]={1};
void createTree(struct TreeNode **node,int index)
{
    if(index<=(sizeof (array))/sizeof (int))
    {
        if(array[index-1]==NULL)
        {
            *node=NULL;
            return;
        }
        else
        {
            *node = (struct TreeNode*)malloc(sizeof (struct TreeNode));
            (*node)->val=array[index-1];
            createTree(&((*node)->left),index*2);
            createTree(&((*node)->right),index*2+1);
        }
    }
    else
    {
        *node=NULL;
        return;
    }
}

int main() {
    struct TreeNode *root;
    createTree(&root,1);
    printf("The depth is:%dn", maxDepth(root));
    return 0;
}

2. 运行结果 总结
  1. 理解力扣代码中二叉树代码的本地化运行【C语言】;
  2. 理解求取最大深度算法中的递归算法;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号