题意:
您需要在二叉树的每一行中找到最大的值
解答:
携带层序,边递归遍历,边比较并更新每一层的最大值(保存在list中)
public List<Integer> largestValues(TreeNode root) { if (root == null) { return Collections.EMPTY_LIST; } List<Integer> ret = new ArrayList<Integer>(); traverse(root, 0, ret); return ret; } private void traverse(TreeNode root, int level, List<Integer> list) { if (root == null) { return; } if (level >= list.size()) { list.add(root.val); } else { if (list.get(level) < root.val) { list.set(level, root.val); } } traverse(root.left, level + 1, list); traverse(root.right, level + 1, list); }