题解 | #农场牛的最佳观赏次序# 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整型一维数组
     */
    List<Integer> ve = new ArrayList<>();
    public int[] inorderTraversal (TreeNode root) {
        // write code here
        dfs(root);
        int[] result = new int[ve.size()];
        for (int i = 0; i < ve.size(); i++) {
            result[i] = ve.get(i);
        }
        return result;
    }

    public void dfs(TreeNode root) {
        if (root == null) {
            return;
        }
        dfs(root.left);
        ve.add(root.val);
        dfs(root.right);
    }
}

所用的语言是Java。

该题考察的知识点是二叉树的中序遍历和递归算法。

代码的文字解释如下:

  1. 定义 List<Integer> 类型的变量 ve,用于存储中序遍历的结果。
  2. inorderTraversal 方法方法接收一个类型为 TreeNode 的参数 root,并返回一个整数数组。
  3. 在 inorderTraversal 方法中,首先调用了 dfs 方法进行中序遍历。
  4. 创建一个长度与 ve 相同的整数数组 result
  5. 使用一个循环将 ve 中的元素逐个赋值给 result 数组。
  6. 返回数组 result 作为结果。
  7.  dfs 方法用于递归地遍历二叉树的左子树、根节点和右子树,并将节点的值添加到 ve 中。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务