199. Binary Tree Right Side View
Description
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