面试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)
            
相关推荐
LuminousCPP5 天前
数据结构-二叉树(五):查找、销毁与前序序列建树
c语言·数据结构·笔记·二叉树
林森lsjs7 天前
零基础吃透二叉树:定义、遍历与高频算法 —数据结构柒
java·开发语言·数据结构·算法·二叉树
wabs6667 天前
关于二叉树【力扣144.二叉树的前序遍历的思考】
数据结构·c++·算法·leetcode·二叉树
LuminousCPP8 天前
数据结构‑二叉树(二):二叉堆从零实现|Heap结构设计 + 建堆优化 + 堆排序深度解析
c语言·数据结构·笔记·二叉树
rannn_11114 天前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
伟大的车尔尼15 天前
分治题目:所有可能的真二叉树
二叉树·分治
神威难绷泪15 天前
数据结构:二叉树
数据结构·二叉树
伟大的车尔尼16 天前
分治题目:不同的二叉搜索树 II
二叉树·二叉搜索树·分治
Tyler_TXZ16 天前
C++C语言之——二叉树
c语言·开发语言·数据结构·c++·二叉树
love_muming23 天前
二叉树操作全解析:从递归到层序遍历
java·数据结构·算法·二叉树