声明:本题及相关刷题笔记同步github之中,欢迎Fork & Star GitHub:https://github.com/HoqiheChen。如有不足之处,烦请改正。QQ Mail:851774342@qq.com
Description
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
Brief
判断一棵树是不是中心对称的二叉树。
Input
(1)
(2)
Output
(1)true
(2)false
Explanation
空树是对称的树。
Ideas
对于一棵树是不是对称的,可以判断它的两棵子树是不是对称的。
判断两棵子树是不是对称的可以通过左子树的左子树与右子树的右子树相同,并且左子树的右子树和右子树的左子树相同来判断。
Code
/**
* 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 isSymmetricJudge(root.left,root.right);
}
public boolean isSymmetricJudge(TreeNode left,TreeNode right){
if(left == null && right == null){
return true;
}
if(left == null || right == null || left.val != right.val){
return false;
}
return isSymmetricJudge(left.right,right.left) && isSymmetricJudge(left.left,right.right);
}
}
声明:本题及相关刷题笔记同步github之中,欢迎Fork & Star GitHub:https://github.com/HoqiheChen。如有不足之处,烦请改正。QQ Mail:851774342@qq.com