二叉树-广度优先遍历

123 阅读1分钟

树的结构

const root = {
    val: 1,
    left: {
        val: 2,
        left: {
            val: 3
        },
        right: {
            val: 4
        }
     },
     right: {
         val: 5,
         left: {
             val: 6
          },
         right: {
             val: 7
         }
      }
 }

广度优先遍历

按层来遍历,输出结果: 1 2 5 3 4 6 7

思想

BFS,底层实现用队列

算法

function BFS(root) {
    let queue = []
    
    queue.push(root)
    
    while(queue.length) {
        const top = queue.shift()
        console.log(top.val) // 取结果
        if(top.left) {
            queue.push(top.left)
        }
        if(top.right) {
            queue.push(top.right)
        }
    }
    
}