java二叉树判断是否是末级节点
时间: 2023-12-24 12:00:37 浏览: 35
在Java中判断一棵二叉树的节点是否为末级节点可以通过递归的方式来实现。首先,定义一个递归函数来判断该节点是否为末级节点。如果节点为空,则返回false;如果节点的左右子节点都为空,则返回true,表示为末级节点;否则,递归判断左右子节点是否为末级节点。具体实现代码如下:
```
public class BinaryTree {
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public boolean isLeafNode(TreeNode node) {
if (node == null) {
return false;
}
if (node.left == null && node.right == null) {
return true;
}
return isLeafNode(node.left) && isLeafNode(node.right);
}
// 测试
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
TreeNode root = tree.new TreeNode(1);
root.left = tree.new TreeNode(2);
root.right = tree.new TreeNode(3);
root.left.left = tree.new TreeNode(4);
root.left.right = tree.new TreeNode(5);
root.right.left = tree.new TreeNode(6);
root.right.right = tree.new TreeNode(7);
System.out.println(tree.isLeafNode(root)); // false
System.out.println(tree.isLeafNode(root.left.left)); // true
}
}
```
上面的代码中,首先定义了一个内部类TreeNode表示二叉树的节点,然后定义了一个isLeafNode方法来判断节点是否为末级节点。在main方法中,创建了一棵二叉树并进行了测试,验证了isLeafNode方法的正确性。通过递归的方式,可以方便地判断一棵二叉树的节点是否为末级节点。