本文主要是介绍Binary Tree Right Side View (是不是得写篇字庆贺一下啊),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
好像是中级题目以来,第一次自己思路一次就通过的的,红红火火恍恍惚惚哼哼哈嘿,是不是得写篇字庆贺一下啊,虽说不难吧,红红火火恍恍惚惚哼哼哈嘿。
层级遍历,打印每层的最后一个数字。
/*** 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> rightSideView(TreeNode root) {List<Integer> result = new LinkedList<>();if (root == null) {return result;}List<List<Integer>> lists = new LinkedList<>();Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()) {int size = queue.size();List<Integer> list = new LinkedList<>();for (int i = 0; i < size; i++) {TreeNode node = queue.poll();list.add(node.val);if (node.left != null) {queue.offer(node.left);}if (node.right != null) {queue.offer(node.right);}}lists.add(list);}for (List<Integer> list: lists) {result.add(list.get(list.size() - 1));}return result;}
}
这篇关于Binary Tree Right Side View (是不是得写篇字庆贺一下啊)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!