Java查找树形结构数据所有叶子节点
时间: 2024-10-08 13:10:51 浏览: 45
在Java中,查找树形结构(如二叉搜索树、平衡树等)的所有叶子节点通常涉及到深度优先遍历(Depth First Search, DFS),特别是前序遍历或后序遍历。这里以递归的方式举例:
```java
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
// 构造函数和其他方法...
}
public List<TreeNode> findLeafNodes(TreeNode root) {
if (root == null) return Collections.emptyList(); // 空节点直接返回空列表
// 如果当前节点是叶节点,添加到结果列表中
if (root.left == null && root.right == null) {
return Arrays.asList(root);
}
// 递归查找左子树和右子树的叶节点
List<TreeNode> leaves = new ArrayList<>();
leaves.addAll(findLeafNodes(root.left));
leaves.addAll(findLeafNodes(root.right));
return leaves;
}
```
上述代码会从根节点开始,如果发现一个节点没有左右子节点,则认为它是叶子节点,并将其加入结果列表。然后继续对左子树和右子树做同样的操作,直到遍历完整棵树。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.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)