面试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)
            
相关推荐
草莓工作室5 天前
数据结构12:二叉树的API及其实现
c语言·数据结构·二叉树
GawynKing16 天前
红黑树-带源码
数据结构·算法·二叉树··红黑树
希赛网18 天前
软考软件设计师常考知识点:(三)数据结构
数据结构·二叉树·字符串·软考·软件设计师·线性表
Haooog21 天前
98.验证二叉搜索树(二叉树算法题)
java·数据结构·算法·leetcode·二叉树
Haooog1 个月前
654.最大二叉树(二叉树算法)
java·数据结构·算法·leetcode·二叉树
CS创新实验室1 个月前
第7章树和二叉树:树的基本概念
数据结构·二叉树··基本概念
Haooog1 个月前
111.二叉树的最小深度(二叉树算法题)
java·数据结构·算法·二叉树
今后1231 个月前
【数据结构】二叉树的概念
数据结构·二叉树
爱编程的化学家2 个月前
代码随想录算法训练营第十一天--二叉树2 || 226.翻转二叉树 / 101.对称二叉树 / 104.二叉树的最大深度 / 111.二叉树的最小深度
数据结构·c++·算法·leetcode·二叉树·代码随想录
_OP_CHEN2 个月前
数据结构(C语言篇):(十三)堆的应用
c语言·数据结构·二叉树·学习笔记·堆排序··top-k问题