- 题目
- 一、如何本地化运行这段代码
- 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.完整代码
#include2. 运行结果 总结#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; }
- 理解力扣代码中二叉树代码的本地化运行【C语言】;
- 理解求取最大深度算法中的递归算法;



