真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中如何驗證二叉搜索樹

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

創(chuàng)新互聯(lián)公司服務(wù)緊隨時代發(fā)展步伐,進行技術(shù)革新和技術(shù)進步,經(jīng)過10多年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計師、專業(yè)的網(wǎng)站實施團隊以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對網(wǎng)站進行做網(wǎng)站、成都網(wǎng)站設(shè)計、建設(shè)、維護、更新和改版,實現(xiàn)客戶網(wǎng)站對外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。

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

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

  • 節(jié)點的左子樹只包含小于當(dāng)前節(jié)點的數(shù)。

  • 節(jié)點的右子樹只包含大于當(dāng)前節(jié)點的數(shù)。

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

示例 1:

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

示例 2:

輸入:
   5
  / \
 1   4
     / \
    3   6
輸出: false
解釋: 輸入為: [5,1,4,null,null,3,6]。
     根節(jié)點的值為 5 ,但是其右子節(jié)點值為 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}

方法二:

遞歸:根節(jié)點>大于左節(jié)點最大值,小于右節(jié)點最小值

/** * 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    }    if root.Left!=nil{         l:=maxBST(root.Left)        return isValidBST(root.Left)&&l    }    if root.Right!=nil{         r:=minBST(root.Right)        return isValidBST(root.Right)&&root.Val    }    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}

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


當(dāng)前題目:python中如何驗證二叉搜索樹
鏈接地址:http://weahome.cn/article/iioesg.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部