题解 | #农场牛的最佳观赏次序#

农场牛的最佳观赏次序

https://www.nowcoder.com/practice/8d618f78ba424b45924fb15c2857b515

考察知识点:二叉搜索树、二叉树中序遍历、递归

解题思路:二叉搜索树的中序遍历结果为一个递增数组,借助这一性质我们就可以快速解决这个问题。通过递归可以实现二叉树的中序遍历,具体结构为:

func dfs(root *TreeNode) {
  // 先序遍历代码
  dfs(root.left)
  // 中序遍历代码
  dfs(root.right)
  // 后序遍历代码
}

这里我们在中序遍历代码部分添加上数组的追加操作即可。

本题解使用语言:Golang

具体代码如下:

package main

/*
 * type TreeNode struct {
 *   Val int
 *   Left *TreeNode
 *   Right *TreeNode
 * }
 */

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param root TreeNode类 
 * @return int整型一维数组
*/
func inorderTraversal( root *TreeNode ) []int {
    // write code here
    res := make([]int, 0)
    dfs(root, &res)
    return res
}

func dfs(root *TreeNode, res *[]int) {
    if root == nil {
        return
    }
    
    dfs(root.Left, res)
    *res = append(*res, root.Val)
    dfs(root.Right, res)
}

全部评论

相关推荐

在秋招的小白菜很想养修勾:一眼 苍穹外卖+谷粒商城,项目换一换吧,可以找一些付费知识星球博主带带,避免烂大街。多投投大厂,背背八股,你这学历乱杀了,等实习经验到位,到时候大厂闭眼选
投递美团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务