【问题标题】:Number of Leaf Nodes in a Binary Tree at a given Level?给定级别的二叉树中的叶节点数?
【发布时间】:2015-08-14 07:58:08
【问题描述】:

给定一棵二叉树,考虑到根的级别为 1 等,我们如何找到特定级别的叶子节点数。

【问题讨论】:

  • 如果您假设它已被填充,那么它是 2^n,其中 n=0 是根。如果您假设每个级别包含最少数量的节点,那么每个级别都是 1。否则,它可能是介于两者之间的任何东西,您必须进行遍历才能找到
  • 感谢您的回复!但我明白了!!

标签: data-structures binary-tree nodes


【解决方案1】:

您可以简单地使用 BFS 或 DFS 算法。类似的东西(在伪代码中):

节点计数器(根,N):
1. 如果根为空或 N 2. 如果 N==1
2.1 如果根是叶返回 1
2.2 否则返回0
3.否则返回Node_counter(root->left, N-1)+Node_counter(root->right, N-1)

复杂度为 O(N)

【讨论】:

    【解决方案2】:
     private int noOfleafLevel(Node root, int leaflevel) {
            if(root==null)
                return 0;
            if(root.left==null&&root.right==null&&leaflevel==1)
                return 1;
            else
                return noOfleafLevel(root.left, leaflevel - 1)+noOfleafLevel(root.right, leaflevel - 1);
        }
    

    这是使用级别顺序遍历在特定级别获取 Leaf 的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-15
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      相关资源
      最近更新 更多