1. 对称二叉树
    给定一个二叉树,检查它是否是镜像对称的。
    例如,二叉树 [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;

    }
    };