题解 | #实现二叉树先序,中序和后序遍历#

实现二叉树先序,中序和后序遍历

http://www.nowcoder.com/practice/a9fec6c46a684ad5a3abd4e365a9d362

package main
import . "nc_tools"
/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
 * 
 * @param root TreeNode类 the root of binary tree
 * @return int整型二维数组
*/
var pre = make([]int, 0)
var mid = make([]int, 0)
var nex = make([]int, 0)
func threeOrders( root *TreeNode ) [][]int {
    preTrave(root)
    midTrave(root)
    nexTrave(root)
    
    res := make([][]int, 3)
    res[0] = pre
    res[1] = mid
    res[2] = nex    
    return res
}

func preTrave(root *TreeNode ) {
    if root == nil {
        return 
    }
    pre = append(pre, root.Val)
    preTrave(root.Left)
    preTrave(root.Right)
    
}

func midTrave(root *TreeNode ) {
    if root == nil {
        return 
    }
    midTrave(root.Left)
    mid = append(mid, root.Val)
    midTrave(root.Right)
    
}


func nexTrave(root *TreeNode ) {
    if root == nil {
        return 
    }
    nexTrave(root.Left)
    nexTrave(root.Right)
    nex = append(nex, root.Val)
    
}
全部评论

相关推荐

你见过凌晨四点的牛客吗_BY_KobeBryant:明年再投都一样😂😂
点赞 评论 收藏
分享
不懂!!!:感觉你的项目描述太简单了,建议使用star描述法优化提炼一下,就是使用什么技术或方案解决了什么问题,有什么效果或成果,例如:对axios进行了二次封装,实现了请求的统一管理、错误的集中处理以及接口调用的简化,显著提高了开发效率和代码维护性,使用canvas技术实现了路线绘制功能,通过定义路径绘制函数和动态更新机制,满足了简化的导航可视化需求,提升了用户体验。像什么是使用其他组件库,基本功能描述就最好不要写到项目成果里面去了,加油
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务