A simple python recursive solution - O(n) 60ms
# Definition for a binary tree node.\n    # class TreeNode:\n    #     def __init__(self, x):\n    #         self.val = x\n    #         self.left = None\n    #
    # Definition for a binary tree node.\n    # class TreeNode:\n    #     def __init__(self, x):\n    #         self.val = x\n    #         self.left = None\n    #         self.right = None\n    \n    class Solution:\n        # @param {TreeNode} root\n        # @return {boolean}\n        def isSymmetric(self, root):\n            if not root:\n                return True\n    \n            return self.isSymmetricTree(root.left, root.right)\n    \n        def isSymmetricTree(self, node1, node2):\n            if node1 and node2:\n                return node1.val == node2.val and self.isSymmetricTree(node1.left, node2.right) and self.isSymmetricTree(node1.right, node2.left)\n            else:\n                return node1 == node2
['Python']