二叉树的最大深度题解

二叉树的最大深度题解_第1张图片

二叉树的最大深度题解_第2张图片

一个二叉树有左子树和右子树,那我们就要分别比较左右二叉树深度,题解如下:

1.判断树是否为空树,空树返回0

2.定义左右最大深度变量,用来接收遍历的值

3.分别遍历左子树和右子树,得出他们的深度

4.利用三目操作符进行比较,返回更大的深度,也就是树的深度

代码如下:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int maxDepth(struct TreeNode* root) {
    if (root == NULL)//树为空树
	return 0;

    int leftHeight = maxDepth(root->left);//左边深度进行递归遍历
    int rightHeight = maxDepth(root->right);//右边深度进行递归遍历
    
    //进行比较,返回最大深度
    return leftHeight > rightHeight ? 
	       leftHeight + 1 : rightHeight + 1;

}

你可能感兴趣的:(数据结构,算法,二叉树)