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

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

python中二叉搜索樹的示例分析

本篇文章為大家展示了python中二叉搜索樹的示例分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為伍家崗企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),伍家崗網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

給定一個(gè)整數(shù) n,生成所有由 1 ... n 為節(jié)點(diǎn)所組成的二叉搜索樹。

示例:

輸入: 3
輸出:
[
  [1,null,3,2],
  [3,2,null,1],
  [3,1,null,null,2],
  [2,1,3],
  [1,null,2,null,3]
]
解釋:
以上的輸出對(duì)應(yīng)以下 5 種不同結(jié)構(gòu)的二叉搜索樹:

  1         3     3      2      1
   \       /     /      / \      \
    3     2     1      1   3      2
   /     /       \                 \
  2     1         2                 3

解題思路:

1,對(duì)于二叉樹相關(guān)的問題,都可以遞歸來解

2,對(duì)于start

A,start:i-1能夠組成的二叉樹作為左子樹

B,i+1:end能夠組成的二叉樹作為右子樹

3,注意邊界情況,左(右)子樹為空, start==end,start+1==end

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func generateTrees(n int) []*TreeNode {     var t  []*TreeNode    if n<1{        return t    }    return bst(1,n)}
func bst(start,end int)[]*TreeNode{    var t  []*TreeNode    if end        return t    }    if start==end{        t=append(t,&TreeNode{Val:start})        return t    }    if start+1==end{        t=append(t,&TreeNode{Val:start,Right:&TreeNode{Val:end}})        t=append(t,&TreeNode{Val:end,Left:&TreeNode{Val:start}})        return t    }    for i:=start;i<=end;i++{        left:=bst(start,i-1)        right:=bst(i+1,end)        if len(left)<=0{             for _,r:=range(right){                root:=&TreeNode{Val:i,Right:r}                t=append(t,root)            }        }else if len(right)<=0{               for _,l:=range(left){                root:=&TreeNode{Val:i,Left:l}                t=append(t,root)            }        }else{        for _,l:=range(left){            for _,r:=range(right){                root:=&TreeNode{Val:i,Left:l,Right:r}                t=append(t,root)            }        }        }    }    return t}

上述內(nèi)容就是python中二叉搜索樹的示例分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱:python中二叉搜索樹的示例分析
URL標(biāo)題:http://weahome.cn/article/jjpggs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部