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){
/*对称二叉树
* 结构或值不对称二叉树
* 特殊输入*/
}
}
对称的二叉树(Java实现)
最新推荐文章于 2021-11-24 00:37:38 发布