精華區beta Marginalman 關於我們 聯絡資訊
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 } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.184.232 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1719394102.A.522.html
yam276: :O 06/26 17:31
yam276: 今天忘了寫題目了 06/26 17:31
DJYOMIYAHINA: 法國我 06/26 17:31
JIWP: 我要法克你 06/26 17:32
sustainer123: 我本來是想能不能邊遍歷邊改 06/26 17:32
sustainer123: 後來想想直接紀錄比較快 06/26 17:32
JIWP: 我覺得沒辦法 06/26 17:33
oin1104: 模型 送我 我快哭了 06/26 17:34