首页 > 学院 > 开发设计 > 正文

LeetCode oj 515. Find Largest Value in Each Tree Row(DFS||BFS)

2019-11-08 02:56:44
字体:
来源:转载
供稿:网友

515. Find Largest Value in Each Tree Row

Description Submission SolutionsTotal Accepted: 3223Total Submissions: 6121Difficulty: MediumContributors: love_FDU_llp

You need to find the largest value in each row of a binary tree.

Example:

Input:           1         / /        3   2       / /   /        5   3   9 Output: [1, 3, 9]
DFS:
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {        List<Integer>list = new ArrayList<Integer>();    public void dfs(TreeNode root,int level){        if(root == null){            return ;        }                if(list.size() < level + 1){            list.add(Integer.MIN_VALUE);        }        list.set(level,Math.max(root.val,list.get(level)));        dfs(root.left,level+1);        dfs(root.right,level+1);    }        public List<Integer> largestValues(TreeNode root) {        if(root == null){            return list;        }        dfs(root,0);        return list;    }}BFS:
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public List<Integer> largestValues(TreeNode root) {        List<Integer> list = new ArrayList<Integer>();        Queue<TreeNode> q1 = new LinkedList<TreeNode>();        Queue<TreeNode> q2 = new LinkedList<TreeNode>();        if(root == null){            return list;        }        q1.add(root);        while(!q1.isEmpty()){             while(!q1.isEmpty()){                 q2.add(q1.poll());           }           int Max = Integer.MIN_VALUE;           while(!q2.isEmpty()){               TreeNode tempNode = q2.poll();                 Max = Math.max(Max,tempNode.val);               if(tempNode.left != null){                   q1.add(tempNode.left);               }               if(tempNode.right != null){                   q1.add(tempNode.right);               }           }           list.add(Max);        }        return list;    }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表