请实现一个函数,用来判断一棵二叉树是不是对称的。
如果一棵二叉树和它的镜像一样,那么它是对称的。
样例 如下图所示二叉树[1,2,2,3,4,4,3,null,null,null,null,null,null,null,null]为对称二叉树: 1 / \ 2 2 / \ / \ 3 4 4 3 如下图所示二叉树[1,2,2,null,4,4,3,null,null,null,null,null,null]不是对称二叉树: 1 / \ 2 2 \ / \ 4 4 3时间复杂度O(n)
class Solution { public boolean isSymmetric(TreeNode root) { if(root == null){ return true; } return test(root.left,root.right); } boolean test(TreeNode left,TreeNode right){ if(left == null && right == null){ return true; } if(left == null || right == null){ return false; } return (left.val == right.val) && test(left.left,right.right) && test(left.right,right.left); } }