package RandomPractice;
import util.*;
public class SameLeafNode {
public static boolean hasSameLeaf(BTNode root1, BTNode root2){
if(root1 == null && root2 == null)
return true;
if(root1 == null || root2 == null)
return false;
if(isLeaf(root1) && isLeaf(root2)){
if(root1.value == root2.value)
return true;
else
return false;
}
else{
boolean left = hasSameLeaf(root1.left, root2.left);
boolean right = hasSameLeaf(root1.right, root2.right);
return left && right;
}
}
public static boolean isLeaf(BTNode root){
if(root.left == null && root.right == null)
return true;
else
return false;
}
public static void main(String[] args){
BTNode root1 = new BTNode(1, null, null);
root1.left = new BTNode(3, null, null);
root1.right = new BTNode(10, null, null);
root1.left.left = new BTNode(11, null, null);
root1.left.right = new BTNode(13, null, null);
BTNode root2 = new BTNode(2, null, null);
root2.left = new BTNode(5, null, null);
root2.right = new BTNode(10, null, null);
root2.left.left = new BTNode(11, null, null);
root2.left.right = new BTNode(13, null, null);
System.out.println(hasSameLeaf(root1, root2));
}
}
[RandomCoding]SameLeafNode
最新推荐文章于 2025-09-03 15:35:57 发布
本文介绍了一个Java程序,用于判断两棵二叉树的叶子节点是否完全相同。通过递归方式比较两个二叉树的所有叶子节点值是否相等,以此来验证它们是否具有相同的叶子节点结构。
8407

被折叠的 条评论
为什么被折叠?



