public class E28SymmetricalBinaryTree {
private class BinaryTreeNode{
int value;
BinaryTreeNode leftNode;
BinaryTreeNode rightNode;
}
public static boolean isSymmetrical(BinaryTreeNode root){
return isSymmetricalCore(root, root);
}
private static boolean isSymmetricalCore(BinaryTreeNode root1, BinaryTreeNode root2){
if (root1 == null && root2 == null)
return true;
if (root1 == null || root2 == null)
return false;
if (root1.value != root2.value)
return false;
return isSymmetricalCore(root1.leftNode, root2.rightNode) &&
isSymmetricalCore(root1.rightNode, root2.leftNode);
}
public static void main(String[] args){
}
}