-3
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;
Я ожидаю получить истинное, но получаю false. Я предполагаю, что пропустил очко или два. Как его исправить?Метод рекурсии моего дерева не работает
Я предполагаю, что это должно быть 'вернуть isMirror (left.left, right.left) && isMirror (left.right, right.right);'. – Tunaki
Хорошее время для начала использования отладчика. –
Почему отладка, когда вы можете приехать в беспорядок, чтобы SO и кто-то отлаживает вас ........? – redFIVE