给定级别的二叉树中的叶节点数?

时间:2015-08-14 07:58:08

标签: data-structures binary-tree nodes

给定二叉树,我们如何在特定级别找到叶节点的数量,考虑根的级别为1,依此类推。

2 个答案:

答案 0 :(得分:0)

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

Node_counter(root,N):
   1.如果root为null或N <1则返回0
   2.如果N == 1
        2.1如果root是leaf return 1
        2.2否则返回0
   3.否则返回Node_counter(root-&gt; left,N-1)+ Node_counter(root-&gt; right,N-1)

复杂性是O(N)

答案 1 :(得分:0)

 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提升到特定级别的代码。