[74] [DFS] M199M979

    技术2025-05-07  24

    M199 Binary Tree Right Side View

    Recommended: DFS Approach

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { List<Integer> res = new LinkedList<Integer>(); public List<Integer> rightSideView(TreeNode root) { if(root == null) return res; dfs(root, 0); return res; } public void dfs(TreeNode node, int level) { if(res.size() == level) res.add(node.val); if(node.right != null) dfs(node.right, level+1); if(node.left != null) dfs(node.left, level+1); } }

    BFS Approach

    /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public List<Integer> rightSideView(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); if (root == null) return res; Deque<TreeNode> queue = new LinkedList<TreeNode>(); int lastVal = 0; queue.addLast(root); while(!queue.isEmpty()) { lastVal = queue.getLast().val; res.add(lastVal); int queueSize = queue.size(); for(int i = 0; i< queueSize; i++) { TreeNode currentTreeNode = queue.pollFirst(); if(currentTreeNode.left!=null) queue.addLast(currentTreeNode.left); if(currentTreeNode.right!=null) queue.addLast(currentTreeNode.right); } } return res; } }
    Processed: 0.012, SQL: 9