1. 题目描述
2. 题目分析
- 在很多的面经中看到过这种题,今天有空做了做
- 让你求二叉树的左视图或者右视图,我们可以直接层次遍历,对于层次遍历,参考这道题–102. 二叉树的层次遍历, 我们只需要取出每次层次遍历的第一个数或者最后一个数,存进list中,最后输出
- 这个题目的关键思想是在:
int len = quene.size(); for(int i = 0; i < len; i++){}
3. 题目代码
class Solution { public List<Integer> rightSideView(TreeNode root) { Queue<TreeNode> queue = new LinkedList<TreeNode>(); List<Integer> list = new ArrayList<Integer>(); if(root == null){ return list; } queue.add(root); while(!queue.isEmpty()){ int size = queue.size(); for(int i = size; i > 0; i--){ TreeNode tree = queue.poll(); if(tree.left != null){ queue.add(tree.left); } if(tree.right != null){ queue.add(tree.right); } if(i == 1){ list.add(tree.val); } } } return list; } }