diff --git a/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.java b/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.java new file mode 100644 index 0000000..456ca72 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.java @@ -0,0 +1,100 @@ +//给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 +// +// +// +// 示例 1: +// +// +// +// +//输入: [1,2,3,null,5,null,4] +//输出: [1,3,4] +// +// +// 示例 2: +// +// +//输入: [1,null,3] +//输出: [1,3] +// +// +// 示例 3: +// +// +//输入: [] +//输出: [] +// +// +// +// +// 提示: +// +// +// 二叉树的节点个数的范围是 [0,100] +// -100 <= Node.val <= 100 +// +// Related Topics 树 深度优先搜索 广度优先搜索 二叉树 +// 👍 502 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.TreeNode; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; + +//199:二叉树的右视图 +public class BinaryTreeRightSideView { + public static void main(String[] args) { + //测试代码 + Solution solution = new BinaryTreeRightSideView().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + + /** + * Definition for a binary tree node. + * public class TreeNode { + * int val; + * TreeNode left; + * TreeNode right; + * TreeNode() {} + * TreeNode(int val) { this.val = val; } + * TreeNode(int val, TreeNode left, TreeNode right) { + * this.val = val; + * this.left = left; + * this.right = right; + * } + * } + */ + class Solution { + public List rightSideView(TreeNode root) { + List list = new ArrayList<>(); + if (root == null) { + return list; + } + Queue queue = new LinkedList<>(); + queue.offer(root); + while (!queue.isEmpty()) { + int size = queue.size(); + for (int i = 1; i <= size; i++) { + TreeNode node = queue.poll(); + if (node.left != null) { + queue.offer(node.left); + } + if (node.right != null) { + queue.offer(node.right); + } + if (i == size) { + list.add(node.val); + } + } + } + return list; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.md b/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.md new file mode 100644 index 0000000..420633d --- /dev/null +++ b/src/main/java/leetcode/editor/cn/BinaryTreeRightSideView.md @@ -0,0 +1,36 @@ +

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

+ +

 

+ +

示例 1:

+ +

+ +
+输入: [1,2,3,null,5,null,4]
+输出: [1,3,4]
+
+ +

示例 2:

+ +
+输入: [1,null,3]
+输出: [1,3]
+
+ +

示例 3:

+ +
+输入: []
+输出: []
+
+ +

 

+ +

提示:

+ +
    +
  • 二叉树的节点个数的范围是 [0,100]
  • +
  • -100 <= Node.val <= 100 
  • +
+
Related Topics
  • 深度优先搜索
  • 广度优先搜索
  • 二叉树
  • \n
  • 👍 502
  • 👎 0
  • \ No newline at end of file