Java 我的树递归方法没有';我不能正常工作
我期望得到真实,但我得到虚假。我想我错过了一两点。我应该如何修复它?多亏了Java 我的树递归方法没有';我不能正常工作,java,recursion,Java,Recursion,我期望得到真实,但我得到虚假。我想我错过了一两点。我应该如何修复它?多亏了郡居民的建议: public static boolean isMirror(TreeNode left, TreeNode right){ if (left==null && right==null){ return true; } if (left!=null && right!=null) {
郡居民的建议:
public static boolean isMirror(TreeNode left, TreeNode right){
if (left==null && right==null){
return true;
}
if (left!=null && right!=null) {
if (left.data == right.data) {
return (isMirror(left.left, left.right) && isMirror(right.left, right.right));
}
}
return false;
}
public static boolean isSymmetric(TreeNode root){
if (root==null){
return true;
}
return isMirror(root.left, root.right);
}
public static void main(String[] args){
TreeNode root=new TreeNode();
TreeNode n1=new TreeNode();
TreeNode n2=new TreeNode();
TreeNode n3=new TreeNode();
TreeNode n4=new TreeNode();
root.left=n1;
root.right=n2;
n1.left=n3;
n2.right=n4;
root.data=3;
n1.data=6;
n2.data=6;
n3.data=1;
n4.data=1;
我假设它应该返回isMirror(left.left,right.left)&&isMirror(left.right,right.right)代码>。开始使用调试器的好时机。当你可以这么做并让别人为你调试时,为什么要调试……。?@Tunaki这一个对我来说更有意义返回(isMirror(left.left,right.left)&&isMirror(left.right,right.left))代码>我为什么要选择那个?@Mona第一次呼叫的第二个参数应该是正确的。对。
public static boolean isMirror(TreeNode left, TreeNode right){
if (left==null && right==null){
return true;
}
if (left!=null && right!=null) {
if (left.data == right.data) {
//return (isMirror(left.left, left.right) && isMirror(right.left, right.right));
return (isMirror(left.left, right.right) && isMirror(left.right, right.left));
}
}
return false;
}