题解 | #农场牛的最佳观赏次序#
农场牛的最佳观赏次序
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)
}