42 lines
659 B
Go
42 lines
659 B
Go
package main
|
|
|
|
type TreeNode struct {
|
|
Val int
|
|
Left *TreeNode
|
|
Right *TreeNode
|
|
}
|
|
|
|
func main() {
|
|
|
|
}
|
|
func flatten(root *TreeNode) {
|
|
var helper func(root *TreeNode) []int
|
|
helper = func(root *TreeNode) []int {
|
|
if root == nil {
|
|
return []int{}
|
|
}
|
|
tmp := make([]int, 0)
|
|
tmp = append(tmp, root.Val)
|
|
tmp = append(tmp, helper(root.Left)...)
|
|
tmp = append(tmp, helper(root.Right)...)
|
|
|
|
return tmp
|
|
}
|
|
res := helper(root)
|
|
cur := root
|
|
for i := 0; i < len(res); i++ {
|
|
if i == 0 {
|
|
cur.Left = nil
|
|
continue
|
|
}
|
|
cur.Left = nil
|
|
tmpNode := &TreeNode{
|
|
Val: res[i],
|
|
Left: nil,
|
|
Right: nil,
|
|
}
|
|
cur.Right = tmpNode
|
|
cur = tmpNode
|
|
}
|
|
}
|