21xrx.com
2025-04-05 04:47:24 Saturday
文章检索 我的文章 写文章
C++实现求二叉树深度的方法
2023-06-28 14:58:12 深夜i     15     0
C++ 二叉树 深度 方法 实现

二叉树深度是指从根节点到最远叶子节点的最长路径。在C++中,我们可以使用递归函数来求解二叉树的深度。

首先,我们需要定义一个二叉树结构体,包含左子树和右子树指针,以及节点值:

struct TreeNode {
  int val;
  TreeNode* left;
  TreeNode* right;
  TreeNode(int val) : val(val), left(nullptr), right(nullptr) {}
};

接着,我们定义一个递归函数`maxDepth`,该函数接收一个二叉树根节点指针作为参数,返回该二叉树的深度:

int maxDepth(TreeNode* root) {
  if (root == nullptr)
    return 0;
  
  int leftDepth = maxDepth(root->left);  // 递归左子树
  int rightDepth = maxDepth(root->right); // 递归右子树
  return max(leftDepth, rightDepth) + 1// 取左右子树深度的最大值并加1
}

其中,当根节点为空时,深度为0;否则,先递归求解左子树深度,再递归求解右子树深度,并取两者的最大值。最后,加1表示当前节点也算一层,即可得到整棵树的深度。

在求解二叉树深度的过程中,递归函数的调用会遍历二叉树的所有节点,时间复杂度为O(n),其中n为二叉树节点个数。因此,该方法具有较高的效率和简洁的实现方式,是C++实现求二叉树深度的主要方法之一。

  
  

评论区

请求出错了