Problem: 101. 对称二叉树


文章目录

  • 思路 & 解题方法
  • 复杂度
  • Code


思路 & 解题方法

重新构造一个函数.

复杂度

时间复杂度:

对称二叉树【二叉树】_Code

空间复杂度:

对称二叉树【二叉树】_复杂度_02

Code

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def func(self, L, R):
        if L and R:
            if L.val != R.val:
                return False
            return self.func(L.left, R.right) and self.func(L.right, R.left)
        elif not L and not R:
            return True
        else:
            return False

    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        if not root or (root and not root.left and not root.right):
            return True
        if root.left and root.right:
            return self.func(root.left, root.right)
        else:
            return False