面试150 对称二叉树

思路

联想递归三部曲:传入参数、遍历方式、返回什么。本题联想到先序遍历的方式,需要遍历整颗二叉树,最后返回的是一个布尔值。然后我们需要传入的是左子树和左子树的节点,然后分别进行比较。

python 复制代码
# 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:
        def compare(left,right):
            if left==None and right==None:
                return True
            elif left==None and right!=None:
                return False
            elif left!=None and right==None:
                return False
            elif left.val!=right.val:
                return False
            Left=compare(left.left,right.right)#比较左子树的左孩子和右子树的右孩子
            Right=compare(left.right,right.left)#比较左子树的右孩子与右子树的左孩子
            return Left and Right
        if not root:
            return True
        return compare(root.left,root.right)
            
相关推荐
梦境虽美,却不长1 个月前
数据结构 (树) 学习 2025年6月12日12:59:39
数据结构·学习·二叉树·霍夫曼树·非二叉树
Java 技术轻分享1 个月前
《树数据结构解析:核心概念、类型特性、应用场景及选择策略》
数据结构·算法·二叉树··都差速
想睡hhh1 个月前
Practice 2025.6.1—— 二叉树进阶面试题(2)
c++·算法·二叉树·遍历
June`1 个月前
深度刨析树结构(从入门到入土讲解AVL树及红黑树的奥秘)
数据结构·c++·二叉树·红黑树·二叉搜索树··avl树
旺仔老馒头.2 个月前
【数据结构】树形结构--二叉树
c语言·数据结构·二叉树·深度优先
丶Darling.2 个月前
Day126 | 灵神 | 二叉树 | 层数最深的叶子结点的和
数据结构·c++·算法·二叉树·深度优先
白白糖2 个月前
相同,对称,平衡,右视图(二叉树)
python·算法·二叉树·力扣
丶Darling.2 个月前
Day125 | 灵神 | 二叉树 | 二叉树中的第K大层和
数据结构·c++·学习·算法·二叉树
丶Darling.2 个月前
Day119 | 灵神 | 二叉树 | 二叉树的最近共公共祖先
数据结构·c++·算法·二叉树