提供一种很有意思的递归解法
Given the root
of a binary tree, check whether it is a mirror of itself(i.e., symmetric around its center).
Example 1:
Input: root = [1,2,2,3,4,4,3] Output: true
Example 2:
Input: root = [1,2,2,null,3,null,3] Output: false
Constraints:
- The number of nodes in the tree is in the range
[1, 1000]
. -100 <= Node.val <= 100
Follow up: Could you solve it both recursively and iteratively?
class Solution:
def isSymmetric(self, root):
levels = []
if not root:
return True
left_R = root.left
right_R = root.right
if left_R == None and right_R == None:
return True
elif left_R == None and right_R != None:
return False
elif left_R != None and right_R == None:
return False
else:
if left_R.val != right_R.val:
return False
else:
temp = right_R.right
right_R.right = left_R.right
left_R.right = temp
return self.isSymmetric(left_R) and self.isSymmetric(right_R)