DAY 6
对称二叉树
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [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
思路:树的题目很多情况下设计递归,这题可以参考深度搜索
/**
Definition for a binary tree node.
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
/
class Solution {
public:
bool isSymmetric(TreeNode* root) {if (root==NULL) return true; bool result =duicheng(root->left,root->right); return result;
}
bool duicheng(TreeNode* left_tre,TreeNode* right_tre){
if(left_tre==NULL && right_tre==NULL) return true; if(left_tre==NULL || right_tre==NULL) return false; bool p = duicheng( left_tre->left, right_tre->right); bool q = duicheng( left_tre->right, right_tre->left); if((p&&q)&&(left_tre->val ==right_tre->val) ) return true; return false;
}
};