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