力扣 515题 在每个树行中找最大值

Question 515-find largest value in each tree row

解题思路

普通的广度优先搜索

代码

class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> result = new ArrayList<>();
        Queue<TreeNode> curLine = new LinkedList<>();

        if (null != root)   curLine.add(root);

        while (null != curLine.peek()) {
            int maxVal = curLine.peek().val;
            int size = curLine.size();

            for (int i = 0; i < size; i ++) {
                TreeNode curNode = curLine.poll();
                int val = curNode.val;
                maxVal = maxVal > val ? maxVal : val;

                if (null != curNode.left)   curLine.add(curNode.left);
                if (null != curNode.right)  curLine.add(curNode.right);
            }

            result.add(maxVal);
        }

        return result;
    }
}
posted @ 2021-07-13 09:05  寻落英以得度  阅读(36)  评论(0)    收藏  举报