若用二叉链表作为二叉树的存储表示,试用java编写递归算法统计二叉树中结点总数
时间: 2024-10-24 18:14:01 浏览: 29
当我们使用二叉链表来表示二叉树时,每个节点通常包含两个指针,一个指向左孩子,另一个指向右孩子。递归算法可以非常自然地应用于这种结构上,用于计算树中节点的总数。以下是使用 Java 编写的递归函数来完成这个任务:
```java
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
// 树节点构造函数
public TreeNode(int val) {
this.val = val;
left = null;
right = null;
}
}
public class BinaryTreeCounter {
public static int countNodes(TreeNode root) {
if (root == null) { // 如果节点为空,则返回0
return 0;
} else {
// 递归地对左右子树进行计数,然后加当前节点值
return 1 + countNodes(root.left) + countNodes(root.right);
}
}
}
```
在这个 `countNodes` 函数中,我们首先检查当前节点是否为空,如果为空则返回0,表示没有节点。否则,我们递归地计算左子树和右子树的节点总数,并将它们加上根节点自身,得到整个树的节点总数。
阅读全文
相关推荐
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)