Re: [闲聊] 每日leetcode

楼主: JIWP (JIWP)   2024-06-26 17:28:19
1382. Balance a Binary Search Tree
给你一个二元搜寻树
想办法把它变成深度不相差超过1
思路:
先把所有节点的值由记录下来
再去做成题目要求的样子
太久没写BST,差点忘记要怎么写
写起来有够卡
golang code :
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func balanceBST(root *TreeNode) *TreeNode {
var arr []int
sortarray(root, &arr)
return dfs(arr)
}
func sortarray(node *TreeNode, arr *[]int) {
if node == nil {
return
}
sortarray(node.Left, arr)
*arr = append(*arr, node.Val)
sortarray(node.Right, arr)
}
func dfs(arr []int) *TreeNode {
if len(arr) == 0 {
return nil
}
res := &TreeNode{}
res.Val = arr[len(arr)/2]
res.Left = dfs(arr[:len(arr)/2])
res.Right = dfs(arr[len(arr)/2+1:])
return res
}
作者: yam276 ('_')   2024-06-26 17:31:00
:O今天忘了写题目了
作者: DJYOMIYAHINA (通通打死)   2024-06-26 17:31:00
法国我
楼主: JIWP (JIWP)   2024-06-26 17:32:00
我要法克你
作者: sustainer123 (caster)   2024-06-26 17:32:00
我本来是想能不能边遍历边改后来想想直接纪录比较快
楼主: JIWP (JIWP)   2024-06-26 17:33:00
我觉得没办法
作者: oin1104 (是oin的说)   2024-06-26 17:34:00
模型 送我 我快哭了

Links booklink

Contact Us: admin [ a t ] ucptt.com