Golang反转二叉树

ES_KYW · · 493 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

反转二叉树

type NoteTree struct {
    Val int
    left *NoteTree
    right *NoteTree
}
// 从根部往下,依次递归反转
func reverse_notetree(root *NoteTree) *NoteTree {
    if root == nil{
        return nil
    }
    left := reverse_notetree(root.left)
    right := reverse_notetree(root.right)
    root.left = right
    root.right = left
    return root
}
测试
func main() {

    root :=&NoteTree{}
    left1 :=&NoteTree{}
    right1 :=&NoteTree{}
    left2 :=&NoteTree{}
    right2 :=&NoteTree{}
    left21 :=&NoteTree{}
    right21 :=&NoteTree{}

    root.Val = 0
    root.left = left1
    root.right = right1

    left1.Val = 1
    left1.left = left2
    left1.right = right2

    right1.Val = 2
    right1.left = left21
    right1.right = right21

    left2.Val = 3
    right2.Val = 4
    left2.left = nil
    right2.right = nil

    left21.Val = 5
    right21.Val = 6
    left21.left = nil
    right21.right = nil

    root1 := reverse_notetree(root)
    fmt.Println(root1.Val)
    fmt.Println(root1.left.Val)
    fmt.Println(root1.left.left.Val)
}
0
2
6

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:ES_KYW

查看原文:Golang反转二叉树

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

493 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传