面试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)
            
相关推荐
不染尘.8 小时前
拓扑排序算法
开发语言·数据结构·c++·算法·排序算法·广度优先·深度优先遍历
阿里嘎多哈基米8 小时前
速通Hot100-Day10——二叉树
算法·leetcode·二叉树·递归·平衡二叉树
阿里嘎多哈基米1 天前
速通Hot100-Day09——二叉树
算法·leetcode·二叉树·hot100
XiaoYu1__6 天前
算法笔记·其一:从递归到回溯——以全排列与N皇后问题为例
c++·笔记·算法·深度优先遍历
We་ct6 天前
LeetCode 427. 建立四叉树:递归思想的经典应用
前端·算法·leetcode·typescript·dfs·深度优先遍历·分治
样例过了就是过了7 天前
LeetCode热题100 N 皇后
数据结构·c++·算法·leetcode·dfs·深度优先遍历
Yvonne爱编码9 天前
二叉树高频题精讲 | 从入门到熟练掌握二叉树操作
java·开发语言·数据结构·链表·二叉树
We་ct11 天前
LeetCode 17. 电话号码的字母组合:回溯算法入门实战
前端·算法·leetcode·typescript·深度优先·深度优先遍历
季明洵12 天前
二叉树的最小深度、完全二叉树的节点个数、平衡二叉树、路径总和、从中序与后序遍历序列构造二叉树
java·数据结构·算法·leetcode·二叉树
识君啊1 个月前
Java 二叉树从入门到精通-遍历与递归详解
java·算法·leetcode·二叉树·深度优先·广度优先