2018-08-14 LeetCode在每個樹行中找最大值

class Solution {
    public List<Integer> largestValues(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
         List<Integer> ans = new LinkedList<>();
         if (root == null) {
            return ans;
        }
        queue.offer(root);
        TreeNode last = root;
        TreeNode nLast = null;
        int max = Integer.MIN_VALUE;
        while (!queue.isEmpty()) {
            root = queue.poll();
            max = root.val > max ? root.val : max;
            if (root.left != null) {
                queue.offer(root.left);
                nLast = root.left;
            }
            if (root.right != null) {
                queue.offer(root.right);
                nLast = root.right;
            }
            if (root == last && !queue.isEmpty()) {
                ans.add(max);
                max = Integer.MIN_VALUE;
                last = nLast;
            }
        }
        ans.add(max);
        return ans;
    }
}
class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        Queue<TreeNode> queue = new LinkedList<>();
        if (root == null) return res;
        queue.add(root);
        while (!queue.isEmpty()) {
            int max = Integer.MIN_VALUE;
            int size = queue.size();
            for ( int i = 0; i < size; i++) {
                TreeNode node = queue.remove();
                if (node.val > max) max = node.val;
                if (node.left != null) queue.add(node.left);
                if (node.right != null) queue.add(node.right);
            }
            res.add(max);
        }
        return res;
    }
}
class Solution {
    public List<Integer> largestValues(TreeNode root) {
        List<Integer> list=new ArrayList<>();
        check(root,0,list);
        return list;
    }

    public void check(TreeNode node,int index,List<Integer> list){
        if(node==null){
            return;
        }
        if(index >= list.size()){
            list.add(node.val);
        }else {
            list.set(index,Math.max(node.val,list.get(index)));
        }
        check(node.left,index+1,list);
        check(node.right,index+1,list);
    }
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 今天又迎來了一批高級班死黨結業(yè)啦!每一期高級班的結業(yè)都帶給我們許多感動,這份感動是我們每個人作為生命個體,對...
    精尚閱讀 201評論 0 0
  • 剛接到朋友一個電話,說明天下午踢球,問好了具體時間地點后,我很誠懇的感謝到“明天下午一定來,不來就請你吃飯”(我已...
    迎刃閱讀 469評論 0 2
  • 1>用紙和筆將最初的想法先構思一下。 2>用Axure做最粗略的原型,把主要信息結構與操作過程表達出來。 3>用A...
    Jessica流年閱讀 711評論 0 8
  • 1 新生報到的第一天,小花早早地來到學校,與小學相比,這里真大也很美。小花雙手扯著書包帶,認真地觀看學校的每一個角...
    一盞燈ll閱讀 346評論 0 1

友情鏈接更多精彩內(nèi)容