Golang实现二叉树路径遍历

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

package main

import "fmt"

type Node struct {
    left  *Node
    right *Node
    value string
}

var res [][]string

func main() {
    var path []string
    e := Node{nil, nil, "5"}
    d := Node{nil, nil, "4"}
    c := Node{left: nil, right: &e, value: "3"}
    b := Node{nil, nil, "6"}
    a := Node{left: &c, right: &d, value: "2"}
    head := Node{left: &a, right: &b, value: "1"}
    BinaryTreePath(&head, path)
    fmt.Println(res)
}

func BinaryTreePath(root *Node, path []string) {
    path = append(path, root.value)
    if root.left == nil && root.right == nil {
        res = append(res, path)
    }
    if root.left != nil {
        BinaryTreePath(root.left, path)
    }
    if root.right != nil {
        BinaryTreePath(root.right, path)
    }
}

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

本文来自:简书

感谢作者:看活一分钟

查看原文:Golang实现二叉树路径遍历

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

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