199. Binary Tree Right Side View

Description

Here

Intuition

public List<Integer> rightSideView(TreeNode root) {
    final List<Integer> result = new ArrayList<>();
    rightSideView(result, root, 0);
    return result;
  }

  private void rightSideView(final List<Integer> result, final TreeNode root, final int i) {
    if (root == null) {
      return;
    }
    if (result.size() <= i) {
      result.add(root.val);
    } else {
      result.set(i, root.val);
    }
    rightSideView(result, root.left, i + 1);
    rightSideView(result, root.right, i + 1);
  }

以上方法相当intuitive,但可以更简洁一点,从root.right开始loop,然后只需要不断add,并不需要set



Pitfall

Solution

Reference

My simple accepted solution(JAVA))

results matching ""

    No results matching ""