Leetcode之深度优先搜索(DFS)专题-199. 二叉树的右视图(Binary Tree Right Side View)
Leetcode之深度优先搜索(DFS)专题-199. 二叉树的右视图(Binary Tree Right Side View)
深度优先搜索的解题详细介绍,点击
给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
示例:
输入: [1,2,3,null,5,null,4] 输出: [1, 3, 4] 解释: 1 <--- / \ 2 3 <--- \ \ 5 4 <---
分析:
把每一行的值保存起来,最后再把每一行最后一个放进ans里。
AC代码:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<List<Integer>> temp = new ArrayList<>(); public List<Integer> rightSideView(TreeNode root) { if(root==null) return new ArrayList<Integer>(); dfs(root,0); List<Integer> ans = new ArrayList<>(); for(int i=0;i<temp.size();i++){ List<Integer> list = temp.get(i); ans.add(list.get(list.size()-1)); } return ans; } public void dfs(TreeNode node,int depth){ if(node==null){ return; } if(temp.size()==depth){ temp.add(new ArrayList<>()); } temp.get(depth).add(node.val); dfs(node.left,depth+1); dfs(node.right,depth+1); } }
作者:秦羽纶
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.