21xrx.com
2024-09-20 05:30:34 Friday
登录
文章检索 我的文章 写文章
C++实现求二叉树深度的方法
2023-06-28 14:58:12 深夜i     --     --
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++实现求二叉树深度的主要方法之一。

  
  

评论区

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