二叉树求叶子结点数代码

勇键 阅读:653 2024-04-30 03:03:59 评论:0

计算二叉树的叶子节点数可以使用递归的方法来实现。我们定义一个函数来递归地遍历二叉树,并计算叶子节点的数量。

```

public class TreeNode {

int val;

TreeNode left;

TreeNode right;

public TreeNode(int val) {

this.val = val;

}

}

public class BinaryTree {

public int countLeafNodes(TreeNode root) {

if (root == null) {

return 0; // 空树没有叶子节点

}

if (root.left == null && root.right == null) {

return 1; // 只有一个节点的树的叶子节点数量为1

}

int leftLeaves = countLeafNodes(root.left); // 递归计算左子树的叶子节点数量

int rightLeaves = countLeafNodes(root.right); // 递归计算右子树的叶子节点数量

return leftLeaves rightLeaves; // 返回左子树和右子树叶子节点数量之和

}

}

```

使用上述的代码,我们可以计算任意二叉树的叶子节点数。对于给定的二叉树,可以先构造二叉树的结构,然后调用`countLeafNodes`函数来计算叶子节点的数量。

下面是一个示例,演示了如何使用上述代码来计算二叉树的叶子节点数:

```

public class Main {

public static void main(String[] args) {

// 构造二叉树

TreeNode root = new TreeNode(1);

root.left = new TreeNode(2);

root.right = new TreeNode(3);

root.left.left = new TreeNode(4);

root.left.right = new TreeNode(5);

root.right.left = new TreeNode(6);

root.right.right = new TreeNode(7);

// 计算叶子节点数

BinaryTree binaryTree = new BinaryTree();

int leafCount = binaryTree.countLeafNodes(root);

// 输出结果

System.out.println("叶子节点数:" leafCount);

}

}

```

运行上述代码,输出结果为:

```

叶子节点数:4

```

这表示给定的二叉树有4个叶子节点。

希望这个示例代码对你有所帮助!如果有其他问题,请随时提问。

搜索
排行榜
最近发表
关注我们

扫一扫关注我们,了解最新精彩内容