91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何分析python中的對稱二叉樹

發布時間:2021-12-13 15:14:04 來源:億速云 閱讀:106 作者:柒染 欄目:大數據

如何分析python中的對稱二叉樹,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

對稱二叉樹

 

題目

給定一個二叉樹,檢查它是否是鏡像對稱的。

例如,二叉樹 [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
 

來源:力扣(LeetCode)鏈接:https://leetcode-cn.com/problems/symmetric-tree/submissions/

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
   

錯誤代碼

判斷二叉樹是否對稱,先看看下面代碼是否正確,它實現的什么功能?

首先看遞歸基,分三種情況:

  1. 沒有根,就是空樹,返回True
  2. 沒有左右子樹,返回True
  3. 左右子節點     val不相等,返回False

遞歸方程如下,判斷左、右子樹都對稱。

self.isSymmetric(root.left) and self.isSymmetric(root.right)
 
    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        if not root:
            return True 
        if not root.left and not root.right:
            return True 
        return root.left == root.right and self.isSymmetric(root.left) and self.isSymmetric(root.right)
 

以上代碼認為下面的二叉樹才是對稱的:

如何分析python中的對稱二叉樹  

這與題目要求的對稱二叉樹明顯不同,這樣才是真的對稱二叉樹:

如何分析python中的對稱二叉樹  
 

正確代碼

錯誤代碼錯誤的原因在于遞歸方程有問題。請看下圖:

如何分析python中的對稱二叉樹  

因此,得到正確的遞歸方程:

sub(left.left,right.right) and sub(left.right,right.left)
 

完整代碼:

class Solution(object):
    def isSymmetric(self, root):
        if not root:
            return True 
        def sub(left,right):
            # 沒有左和右,返回True
            if not left and not right:
                return True
            # 沒有左或沒有右,返回False
            if not left or not right:
                return False
            return left.val == right.val and sub(left.left,right.right) and sub(left.right,right.left)
        return sub(root.left,root.right)

關于如何分析python中的對稱二叉樹問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延边| 久治县| 临泽县| 梅河口市| 安义县| 镇雄县| 阳朔县| 札达县| 福鼎市| 柞水县| 富阳市| 昭觉县| 绥芬河市| 德钦县| 绩溪县| 喜德县| 巴彦淖尔市| 商城县| 花莲市| 威海市| 汝城县| 楚雄市| 玉田县| 乌审旗| 陈巴尔虎旗| 河源市| 大足县| 上思县| 旌德县| 呼和浩特市| 绥棱县| 吐鲁番市| 康乐县| 包头市| 宁夏| 乌拉特前旗| 庆元县| 开鲁县| 普宁市| 曲周县| 衡阳市|