我的LeetCode代码仓:https://github.com/617076674/LeetCode
原题链接:https://leetcode-cn.com/problems/binary-tree-right-side-view/description/
题目描述:
知识点:层序遍历
思路:二叉树的层序遍历
要取得二叉树的右视图,只需层序遍历二叉树,取每一层的最后一个节点即可。关于层序遍历的方法,请见LeetCode102——二叉树的层序遍历。
时间复杂度和空间复杂度均是O(n),其中n为二叉树的节点数。
JAVA代码:
public class Solution {
public List<Integer> rightSideView(TreeNode root) {
List<Integer> result = new ArrayList<>();
if(null == root){
return result;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()){
int size = queue.size();
List<Integer> list = new ArrayList<>();
for(int i = 0; i < size; i++){
TreeNode cur = queue.poll();
list.add(cur.val);
if(null != cur.left){
queue.add(cur.left);
}
if(null != cur.right){
queue.add(cur.right);
}
}
result.add(list.get(list.size() - 1));
}
return result;
}
}
LeetCode解题报告: