Skip to content

199-二叉树的右视图

思路:层序遍历

ts
function rightSideView(root: TreeNode | null): number[] {
  if (root === null) return []

  const ret = []
  const queue = [root]

  while (queue.length) {
    let len = queue.length

    while (len--) {
      const node = queue.shift()

      // 节点顺序从左向右
      // 当遍历到该层最后一个节点时,即为最右边的节点
      if (len === 0) ret.push(node.val)

      node.left && queue.push(node.left)
      node.right && queue.push(node.right)
    }
  }

  return ret
}
function rightSideView(root: TreeNode | null): number[] {
  if (root === null) return []

  const ret = []
  const queue = [root]

  while (queue.length) {
    let len = queue.length

    while (len--) {
      const node = queue.shift()

      // 节点顺序从左向右
      // 当遍历到该层最后一个节点时,即为最右边的节点
      if (len === 0) ret.push(node.val)

      node.left && queue.push(node.left)
      node.right && queue.push(node.right)
    }
  }

  return ret
}