给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/symmetric-tree
代码如下:
/**
* 相同二叉树
* @param root
* @return
*/
public boolean isSymmertric (TreeNode root) {
if (root == null) return true;
return helper(root.left, root.right);
}
/**
* 辅助函数
* 递归调用
* @param p
* @param q
* @return
*/
public boolean helper (TreeNode p, TreeNode q) {
// 都是空节点
if (p == null && q == null) return true;
// 只有一个是空节点
if (p == null || q == null) return false;
return p.val == q.val && helper(p.left, q.right) && helper(p.right, q.left);
}