21xrx.com
2024-12-23 00:34:58 Monday
登录
文章检索 我的文章 写文章
C++求解二叉树高度
2023-07-09 03:43:51 深夜i     --     --
C++ 求解 二叉树 高度

在二叉树的数据结构中,高度是指从根节点到最远叶子节点的距离,其计算方式是根据左子树和右子树的高度来确定的。C++语言作为一种常用的编程语言,有着丰富的库函数和数据类型,可以方便地实现二叉树的高度求解。

要求解二叉树的高度,需要对二叉树进行遍历。在C++中,有多种方式可以实现二叉树的遍历,如前序遍历、中序遍历和后序遍历等。这里我们以前序遍历为例,介绍如何使用C++求解二叉树的高度。

首先,我们需要定义二叉树的节点结构体,如下所示:

struct TreeNode {

  int val;

  TreeNode* left;

  TreeNode* right;

  TreeNode(int x) : val(x), left(NULL), right(NULL) {}

};

其中,val表示节点的值,left和right分别表示左子树和右子树。

接着,我们可以通过递归的方式对二叉树进行前序遍历,并记录每个节点的深度,找到最大深度即为二叉树的高度。具体代码如下:

class Solution {

public:

  int maxDepth(TreeNode* root) {

    if (root == NULL) return 0;

    int left_depth = maxDepth(root->left);

    int right_depth = maxDepth(root->right);

    return max(left_depth, right_depth) + 1;

  }

};

在上述代码中,我们首先判断当前节点是否为空,如果为空则返回0。否则,我们通过递归的方式求解左子树和右子树的深度,并取两者的最大值。最后将深度加1即为当前节点的深度。整个函数返回的即为二叉树的深度。

以上就是使用C++求解二叉树高度的方法。通过定义节点结构体和递归方式的前序遍历,我们可以轻松地求解任意二叉树的高度。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复