LeetCode in Python 101. 对称二叉树

165 阅读1分钟

1、题目

leetcode.cn/problems/sy…

给你一个二叉树的根节点,检查它是否轴对称。

image.png

2、思考

很自然的使用递归的思想,另写一个函数从根节点下一层开始进行判断,判断的核心依据是left.left == right.right and left.right == right.left。

3、解题

# 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 isSymmetric(self, root: Optional[TreeNode]) -> bool:

        if root is None:
            return True
        return self.subtree(root.left,root.right)

    def subtree (self,left,right):
        if left is None and right is None:
            return True
        if left is None or right is None or left.val != right.val:
            return False
        return self.subtree(left.left,right.right) and self.subtree(left.right,right.left)

一顿操作猛如虎,一看结果63%。

image.png