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

溫馨提示×

溫馨提示×

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

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

python中如何驗證二叉搜索樹

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

這篇文章給大家介紹python中如何驗證二叉搜索樹,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

給定一個二叉樹,判斷其是否是一個有效的二叉搜索樹。

假設一個二叉搜索樹具有如下特征:

  • 節點的左子樹只包含小于當前節點的數。

  • 節點的右子樹只包含大于當前節點的數。

  • 所有左子樹和右子樹自身必須也是二叉搜索樹。

示例 1:

輸入:
   2
  / \
 1   3
輸出: true

示例 2:

輸入:
   5
  / \
 1   4
     / \
    3   6
輸出: false
解釋: 輸入為: [5,1,4,null,null,3,6]。
     根節點的值為 5 ,但是其右子節點值為 4 。

解題思路:

1,中序遍歷

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */var last=^(int(^uint(0) >> 1))func isValidBST(root *TreeNode) bool {    if root!=nil{        if!isValidBST(root.Left){            return false        }        if last>=root.Val{            return false        }        last=root.Val        if !isValidBST(root.Right){            return false        }    }    return true}

方法二:

遞歸:根節點>大于左節點最大值,小于右節點最小值

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func isValidBST(root *TreeNode) bool {    if root==nil{        return true    }    if root.Left!=nil&& root.Right!=nil{        l:=maxBST(root.Left)        r:=minBST(root.Right)        return isValidBST(root.Left)&&isValidBST(root.Right)&&l<root.Val && root.Val<r    }    if root.Left!=nil{         l:=maxBST(root.Left)        return isValidBST(root.Left)&&l<root.Val    }    if root.Right!=nil{         r:=minBST(root.Right)        return isValidBST(root.Right)&&root.Val<r    }    return true}
func maxBST(root *TreeNode)int{    if root.Right!=nil{        return maxBST(root.Right)    }    return root.Val}
func minBST(root *TreeNode)int{    if root.Left!=nil{        return minBST(root.Left)    }    return root.Val}

關于python中如何驗證二叉搜索樹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

岳池县| 沂水县| 杭州市| 普定县| 怀远县| 新疆| 皋兰县| 洛浦县| 临沂市| 淮北市| 桃园县| 青川县| 友谊县| 蓬莱市| 三亚市| 江华| 九龙城区| 绍兴县| 莱西市| 兴国县| 扬中市| 宜兴市| 安达市| 赤峰市| 任丘市| 新绛县| 招远市| 农安县| 奎屯市| 桃源县| 康保县| 万源市| 克什克腾旗| 蒙山县| 杭锦旗| 名山县| 肃宁县| 天长市| 芒康县| 清原| 木里|