Description
剑指 Offer 28. 对称的二叉树
难度简单100
请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1/ \2 2/ \ / \3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1/ \2 2\ \3 3
示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false
限制:0 <= 节点个数 <= 1000
Solution
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/class Solution {public boolean isSymmetric(TreeNode root) {if (root == null)return true;return checkRecursion(root.left,root.right);}public boolean checkRecursion(TreeNode left, TreeNode right){if (left == null && right == null)return true;if (left == null || right == null)return false;if (left.val != right.val) // 不相等返回 falsereturn false;// 相等继续往下遍历return checkRecursion(left.left, right.right) && checkRecursion(right.left, left.right);}}
