0
0
DSA Goprogramming~20 mins

Right Side View of Binary Tree in DSA Go - Practice Problems & Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Right Side View Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of Right Side View for a Simple Binary Tree
What is the output of the right side view function for the given binary tree?
DSA Go
package main

import "fmt"

type TreeNode struct {
    Val   int
    Left  *TreeNode
    Right *TreeNode
}

func rightSideView(root *TreeNode) []int {
    if root == nil {
        return []int{}
    }
    var result []int
    queue := []*TreeNode{root}
    for len(queue) > 0 {
        size := len(queue)
        for i := 0; i < size; i++ {
            node := queue[0]
            queue = queue[1:]
            if i == size-1 {
                result = append(result, node.Val)
            }
            if node.Left != nil {
                queue = append(queue, node.Left)
            }
            if node.Right != nil {
                queue = append(queue, node.Right)
            }
        }
    }
    return result
}

func main() {
    root := &TreeNode{Val: 1}
    root.Left = &TreeNode{Val: 2}
    root.Right = &TreeNode{Val: 3}
    root.Left.Right = &TreeNode{Val: 5}
    root.Right.Right = &TreeNode{Val: 4}
    fmt.Println(rightSideView(root))
}
A[1, 3, 4]
B[1, 2, 5]
C[1, 3, 5]
D[1, 2, 4]
Attempts:
2 left
💡 Hint
Think about which nodes are visible when looking from the right side level by level.
🧠 Conceptual
intermediate
1:30remaining
Understanding the Right Side View Concept
Which statement best describes the right side view of a binary tree?
AIt contains the leftmost node at each level of the binary tree.
BIt contains all leaf nodes of the binary tree.
CIt contains all nodes visible when the tree is viewed from the right side, showing the rightmost node at each level.
DIt contains all nodes in the tree in preorder traversal order.
Attempts:
2 left
💡 Hint
Focus on what nodes are visible from the right side perspective.
🔧 Debug
advanced
2:00remaining
Identify the Bug in Right Side View Implementation
What error will occur when running this code snippet for right side view of a binary tree?
DSA Go
func rightSideView(root *TreeNode) []int {
    if root == nil {
        return nil
    }
    var result []int
    queue := []*TreeNode{root}
    for len(queue) > 0 {
        size := len(queue)
        for i := 0; i < size; i++ {
            node := queue[0]
            queue = queue[1:]
            if i == size-1 {
                result = append(result, node.Val)
            }
            if node.Left != nil {
                queue = append(queue, node.Left)
            }
            if node.Right != nil {
                queue = append(queue, node.Right)
            }
        }
    }
    return result
}
Aruntime error: index out of range
Bcompiles and runs correctly
Creturns empty slice
Dsyntax error due to missing colon
Attempts:
2 left
💡 Hint
Check the loop condition carefully for off-by-one errors.
🚀 Application
advanced
1:30remaining
Right Side View for a Skewed Binary Tree
Given a binary tree where every node has only a left child, what will be the right side view output?
DSA Go
root := &TreeNode{Val: 1}
root.Left = &TreeNode{Val: 2}
root.Left.Left = &TreeNode{Val: 3}
root.Left.Left.Left = &TreeNode{Val: 4}
// Call rightSideView(root)
A[1]
B[1, 2, 3, 4]
C[]
D[4]
Attempts:
2 left
💡 Hint
Think about which nodes are visible from the right side when the tree is skewed left.
Predict Output
expert
2:30remaining
Output of Right Side View for Complex Tree with Multiple Levels
What is the output of the rightSideView function for the following tree structure?
DSA Go
root := &TreeNode{Val: 10}
root.Left = &TreeNode{Val: 5}
root.Right = &TreeNode{Val: 15}
root.Left.Left = &TreeNode{Val: 3}
root.Left.Right = &TreeNode{Val: 7}
root.Right.Left = &TreeNode{Val: 12}
root.Right.Right = &TreeNode{Val: 18}
root.Left.Right.Right = &TreeNode{Val: 8}
root.Right.Right.Left = &TreeNode{Val: 17}
// Call rightSideView(root)
A[10, 15, 12, 17]
B[10, 15, 18, 8]
C[10, 5, 7, 8]
D[10, 15, 18, 17]
Attempts:
2 left
💡 Hint
Remember to pick the rightmost node at each level.