Leetcode 101.对称二叉树 (每日一题 20210709)
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 101.对称二叉树 (每日一题 20210709)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個二叉樹,檢查它是否是鏡像對稱的。例如,二叉樹?[1,2,2,3,4,4,3] 是對稱的。1/ \2 2/ \ / \
3 4 4 3但是下面這個?[1,2,2,null,3,null,3] 則不是鏡像對稱的:1/ \2 2\ \3 3鏈接:https://leetcode-cn.com/problems/symmetric-tree"""三種解法""""""第一種遞歸"""class Solution:def isSymmetric(self, root: TreeNode) -> bool:if root == None:return Truereturn self.dfs(root.left, root.right)def dfs(self, left, right):if left == None and right == None:return Trueif left == None or right == None:return Falseif left.val != right.val:return Falsereturn self.dfs(left.left, right.right) and self.dfs(left.right, right.left)""" 第二種解法 棧"""class Solution:def isSymmetric(self, root:TreeNone) -> bool:if root == None:return Truestack = [(root.left, root.right)]while stack != []:left, right = stack.pop()if left == None and right == None:continueif left and right and left.val == right.val:stack.append((left.left, right.right))stack.append((left.right, right.left))else:return Falsereturn True"""第三種解法 隊列"""class Solution:def isSymmetric(self, root:TreeNode) -> bool:if root == None:return Truequeue = [(root.left, root.right)]while queue!=[]:left, right = queue.pop(0)if left == None and right == None:continueif left and right and left.val == right.val:queue.append((left.left, right.right))queue.append((left.right, right.left))else:return Falsereturn True
總結
以上是生活随笔為你收集整理的Leetcode 101.对称二叉树 (每日一题 20210709)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 455.分发饼干 (每
- 下一篇: Attention-OCR(Attent