Leetcode之深度优先搜索(DFS)专题-515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
Leetcode之深度优先搜索(DFS)专题-515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
深度优先搜索的解题详细介绍,点击
您需要在二叉树的每一行中找到最大的值。
示例:
输入: 1 / \ 3 2 / \ \ 5 3 9 输出: [1, 3, 9]
分析:题意很简单,直接DFS。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<Integer> ans = new ArrayList<>(); public List<Integer> largestValues(TreeNode root) { if (root == null) return ans; dfs(root, 0); return ans; } public void dfs(TreeNode node, int depth) { if (node == null) { return; } if(depth==ans.size()){ ans.add(node.val); }else if(node.val > ans.get(depth)){ ans.set(depth, node.val); } dfs(node.left, depth + 1); dfs(node.right, depth + 1); } }
作者:秦羽纶
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.