二叉树层序遍历JavaScrip非递归实现方法

2020-02-03  本文已影响0人  草珊瑚_6557
const TreeNode = {
    val: 1,
    left: {
      val: 2,
      left: {
        val: 4,
      },
      right: {
        val: 5
      }
    },
    right: {
      val: 3,
      left: {
        val: 6,
      },
      right: {
        val: 7
      }
    }
  };

  const levelOrder = (root) => {
    const queue = [];
    const valArr = [];

    if(root === null){
      return;
    }

    queue.push(root);

    while(queue.length !== 0){
      const cur = queue.pop();
      valArr.push(cur.val);
      if(cur.left){
        queue.unshift(cur.left);
      }
      if(cur.right){
        queue.unshift(cur.right);
      }
    }

    return valArr;
  };

  console.log(levelOrder(TreeNode));
上一篇 下一篇

猜你喜欢

热点阅读