接下来就是要把这些问题转变为代码形式
class Solution {
public boolean isSymmetricChild(TreeNode leftTree,TreeNode rightTree){
//定义左子树和右子树的一些情况方法
if(leftTree == null && rightTree == null){
//都为空,是对称的
return true;
}
if(leftTree == null && rightTree != null){
//一个为空一个不为空
return false;
}
if(leftTree != null && rightTree == null){
return false;
}
if(leftTree.val != rightTree.val) return false; //左子树对应的跟右子树不相等
return isSymmetricChild(leftTree.left,rightTree.right) && isSymmetricChild(leftTree.right,rightTree.left);
} //递归左子树左与右子树右 和左子树右和右子树左
public boolean isSymmetric(TreeNode root) {
if(root == null) return true; //空树,是
return (isSymmetricChild(root.left,root.right)); //左跟右的方法递归
}
}
看代码可能还是很懵蔽,接下来就把递归展开看看
链接:对称二叉树!