找到树结点的最底层 java
时间: 2023-10-19 16:23:11 浏览: 27
你可以使用递归算法来找到树结点的最底层。首先判断当前节点是否为叶子节点,若是直接返回深度为1。若不是,则对每个子节点递归调用深度函数,将最大深度加1并返回最终的深度值。以下是一个示例代码:
```java
public int findDepth(TreeNode node) {
if (node == null) {
return 0;
}
if (node.left == null && node.right == null) {
return 1;
}
int leftDepth = findDepth(node.left);
int rightDepth = findDepth(node.right);
return Math.max(leftDepth, rightDepth) + 1;
}
```
在这个示例中,`TreeNode`表示树的节点。首先检查当前节点是否为空,若是则返回0。然后判断当前节点是否为叶子节点,若是直接返回深度为1。若不是,则对每个子节点递归调用深度函数,比较左右子树的深度,将最大深度加1并返回。
相关问题
找到树结点的最末级节点 java
可以通过递归的方式来找到树结点的最末级节点。以下是一个Java代码示例:
```
public TreeNode findLastNode(TreeNode root) {
if (root == null) {
return null;
}
if (root.left == null && root.right == null) {
return root;
}
TreeNode leftLastNode = findLastNode(root.left);
TreeNode rightLastNode = findLastNode(root.right);
if (leftLastNode != null && rightLastNode != null) {
return root;
}
return (leftLastNode != null) ? leftLastNode : rightLastNode;
}
```
其中,TreeNode代表树的节点,left和right表示左子树和右子树;当左右子树都存在时,将当前节点设置为最末级节点。
找到树结构结点的最末级节点 java代码
可以使用递归的方法来找到树结构中最末级节点的 java 代码,示例代码如下:
```
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public TreeNode findLastNode(TreeNode root) {
// 如果根节点为空,则返回 null
if (root == null) {
return null;
}
// 如果当前节点是叶子节点,则直接返回当前节点
if (root.left == null && root.right == null) {
return root;
}
// 否则递归查找左子树和右子树的最末级节点
TreeNode leftLastNode = findLastNode(root.left);
TreeNode rightLastNode = findLastNode(root.right);
// 如果左子树和右子树都为空,则当前节点是最末级节点
if (leftLastNode == null && rightLastNode == null) {
return root;
}
// 如果左子树不为空,右子树为空,则返回左子树的最末级节点
if (leftLastNode != null && rightLastNode == null) {
return leftLastNode;
}
// 如果左子树为空,右子树不为空,则返回右子树的最末级节点
if (leftLastNode == null && rightLastNode != null) {
return rightLastNode;
}
// 如果左子树和右子树都不为空,则返回右子树的最末级节点
return rightLastNode;
}
```
以上代码在假设没有重复节点的情况下实现了找到二叉树结构的最末级节点。