[leetcode_101]Symmetric Tree

之前看编程珠玑的时候,记得先要有想法,就好像 啊哈!灵机一动。
然后要有相应的很好的数据结构。
最后编码。
这是我的一个理解。
然后这个题,真心呵呵。
自从本蒟蒻知道了二叉树序列化之后,就各种用。然后在这儿就用不停的Wa,190个测试数据
188个通过。
蛋疼。
憋了一天,忍不住了,看别人的想法,哎哟我去!这么点代码,蛋疼。
其实就是递归。只是递归的时候注意技巧,原则就是镜像。
附上代码。修改思路之后,一次AC。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
    bool isSymmetric(TreeNode *root) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        if(root == NULL)
            return true;
        return CheckEqual(root->left,root->right);
    }
    bool CheckEqual(TreeNode * left,TreeNode * right)
    {
        if(left == NULL && right == NULL)
            return true;
        if((left == NULL && right != NULL)||(left != NULL && right == NULL))
            return false;
        if(left->val != right->val)
            return false;
        return CheckEqual(left->left,right->right)&&CheckEqual(left->right,right->left);
    }
};
Licensed under CC BY-NC-SA 4.0