JavaScript-Algorithms icon indicating copy to clipboard operation
JavaScript-Algorithms copied to clipboard

字节&Leetcode 199. 二叉树的(左)右视图

Open mameikagou opened this issue 1 year ago • 1 comments

题目链接:https://leetcode.cn/problems/binary-tree-right-side-view/description/ 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

输入:root = [1,2,3,null,5,null,4] 输出:[1,3,4] image

输入:root = [1,2,3,4,null,null,null,5] 输出:[1,3,4,5] image

mameikagou avatar Dec 13 '24 06:12 mameikagou

解答:左右视图就是层序遍历的每层的第一或者最后一个节点;

var rightSideView = function(root) {
    if(!root){
		return [];
	}
	let stack = [];
	let res = [];
	stack.push(root)
	while(stack.length>0){
		let len = stack.length;
		// 对每一层进行处理
		for(let i=0;i<len;i++){
			let cur = stack.shift()
			if(i===len-1){
				res.push(cur.val)
			}
			if(cur.left!==null){
				stack.push(cur.left)
			}
			if(cur.right!==null){
				stack.push(cur.right)
			}
		}
	}
	return res;
};

mameikagou avatar Dec 13 '24 06:12 mameikagou