leetcode with python:101. Symmetric Tree

题目:

Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).

给定一个binary tree,检定它是否对称

这题其实有一点100.的感觉
只是变成两个node右子节点要等于对方的左子节点,左子节点要等于对方的右子节点

# 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 = rightclass Solution:    def isSymmetric(self, root: Optional[TreeNode]) -> bool:        tree1=root.left        tree2=root.right                def symornot(t1,t2):            if t1 is t2:                return True            elif t1 and t2 and t1.val==t2.val:                return symornot(t1.left,t2.right) and symornot(t1.right,t2.left)            else:                return False        return symornot(tree1,tree2)

一开始的root并不重要,我们只要检查它的两个子树是否镜面对称即可
比的过程如果对称且都不是None就递迴继续往下比
一None一非None回传False(不对称)
都为None回传True(到底了)
完全检查完就知道两个子树是否完全对称了
最后执行时间35ms(faster than 91.94%)

那我们下题见


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章