对称二叉树,就是左节点的左节点等于右节点的右节点,左节点的右节点等于右节点的左节点。
很自然就想到迭代与递归,可以创建一个新的函数,就是另一个函数不断的判断,返回在主函数。
class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) { return true; } else return test(root.left,root.right); } public boolean test(TreeNode p,TreeNode q) { if(p == null && q == null) { return true; } else if(p != null && q != null) { if(p.val == q.val) { if(test(p.left,q.right) && test(p.right,q.left)) { return true; } else return false; } else return false; } else return false; } }
注意每个if都要else,不然会报错。