這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)golang中怎么利用leetcode 實(shí)現(xiàn)一個平衡二叉樹,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)閬中免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
輸入一棵二叉樹的根節(jié)點(diǎn),判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節(jié)點(diǎn)的左右子樹的深度相差不超過1,那么它就是一棵平衡二叉樹。
示例 1:
給定二叉樹 [3,9,20,null,null,15,7]
3
/ \
9 20
/ \
15 7
返回 true 。
示例 2:
給定二叉樹 [1,2,2,3,3,null,null,4,4]
1
/ \
2 2
/ \
3 3
/ \
4 4
返回 false 。
限制:
1 <= 樹的結(jié)點(diǎn)個數(shù) <= 10000
解題思路:
1,對于樹一類問題,我們優(yōu)先想倒遞歸
2,平衡二叉樹是左右子樹高度差不超過1
3,那么,包含兩個子問題:
A,左子樹高度和右子樹高度相差不超過1
B,左右子樹都是平衡的
4,注意,計(jì)算高度的時候,是左右子樹的大者+1
代碼實(shí)現(xiàn)
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isBalanced(root *TreeNode) bool {
if root==nil{
return true
}
l:=height(root.Left)
r:=height(root.Right)
if l>r+1 || l+1<r{
return false
}
return isBalanced(root.Left)&&isBalanced(root.Right)
}
func height(root*TreeNode)int{
if root==nil{
return 0
}
l:=height(root.Left)
r:=height(root.Right)
if l>r{
return l+1
}
return r+1
}
golang 知識積累
通常在for循環(huán)中,使用break可以跳出循環(huán),但是注意在go語言中,for select配合時,break并不能跳出循環(huán)。
package main
import (
"fmt"
"time"
)
func main() {
c := make(chan bool)
go testSelectFor(c)
c <- true
c <- false
close(c)
time.Sleep(time.Duration(2) * time.Second)
fmt.Println("Hello, 世界")
}
func testSelectFor(chExit chan bool) {
for {
select {
case v, ok := <-chExit:
if !ok {
fmt.Println("close channel 1", v)
break
}
fmt.Println("ch2 val =", v)
}
}
fmt.Println("exit testSelectFor")
}
上述就是小編為大家分享的golang中怎么利用leetcode 實(shí)現(xiàn)一個平衡二叉樹了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:golang中怎么利用leetcode實(shí)現(xiàn)一個平衡二叉樹
轉(zhuǎn)載注明:http://chinadenli.net/article10/ppsego.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、ChatGPT、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)