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整型一维数组 */ private void dfs(TreeNode node, List<Integer> res) { if (node == null) return; if (node.left == null && node.right == null) { res.add(node.val); } dfs(node.left, res); dfs(node.right, res); } public int[] bottomView(TreeNode root) { List<Integer> resList = new ArrayList<>(); dfs(root, resList); int[] res = new int[resList.size()]; for (int i = 0; i < resList.size(); i++) { res[i] = resList.get(i); } return res; } }
该代码使用的编程语言是 Java。该题考察了二叉树的遍历知识点,通过深度优先搜索(DFS)遍历二叉树,将叶子节点的值添加到结果数组中。最终返回结果数组作为方法的返回值。
在 Java 代码中,我们定义了一个 TreeNode
类来表示二叉树节点。bottomView
方法接收一个 TreeNode
类型的参数 root
,表示二叉树的根节点,并返回一个 int
数组作为结果,表示二叉树的底部视图节点值。
我们使用 dfs
方法来进行深度优先搜索,将叶子节点的值存储在一个动态列表 resList
中。最后,将 resList
转换为数组并返回作为结果。