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);
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。