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

农场牛的最佳观赏次序

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

import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类
     * @return int整型一维数组
     */
    public int[] inorderTraversal (TreeNode root) {
        // write code here
        List<Integer> res = new ArrayList<>();
        dfs(root, res);
        // 将列表转换为数组
        int[] result = new int[res.size()];
        for (int i = 0; i < res.size(); i++) {
            result[i] = res.get(i);
        }
        return result;
    }

    public void dfs(TreeNode root, List<Integer> res) {
        if (root == null) return;
        dfs(root.left, res);
        res.add(root.val);
        dfs(root.right, res);
    }
}

该代码使用的编程语言是Java。

该题考察的知识点是二叉树的中序遍历和数据结构的转换。题目要求实现对给定二叉树进行中序遍历,并返回一个整型数组作为结果。

代码首先定义了一个树节点类 TreeNode,其中包含一个整型值 val,以及左子节点和右子节点的引用。

接下来的 Solution 类中,定义了一个 inorderTraversal 方法,参数为一个二叉树的根节点。该方法使用递归方式进行中序遍历,将遍历的结果存储在一个列表 res 中。

在递归的过程中,先遍历左子树,将左子树的节点值加入到列表 res 中,然后将当前节点的值加入到列表 res 中,最后再遍历右子树,将右子树的节点值加入到列表 res 中。递归的终止条件是当前节点为空。

最后,在 inorderTraversal 方法中,将列表 res 转换为整型数组 result,并将其作为结果返回。

总结起来,该代码实现了二叉树的中序遍历,并将结果转换为整型数组返回。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务