跳转至

LC199 - 二叉树的右视图

RightSideView.go
package BinaryTree

// 时间复杂度: O(n), 空间复杂度: O(n)
func rightSideView(root *TreeNode) []int {
    result := make([]int, 0)
    if root == nil {
        return result
    }
    q := new(TreeNodeQueue)
    q.Enqueue(root)
    for !q.IsEmpty() {
        curLevelSize := q.Size()
        for i := 0; i < curLevelSize; i++ {
            cur := q.Dequeue()
            if i == 0 {
                result = append(result, cur.Val)
            }
            if cur.Right != nil {
                q.Enqueue(cur.Right)
            }
            if cur.Left != nil {
                q.Enqueue(cur.Left)
            }
        }
    }
    return result
}

和LC102几乎没有区别