LeetCode第513题 :找树左下角的值

274 阅读1分钟

题干

给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。

假设二叉树中至少有一个节点。

示例 1:

img

 输入: root = [2,1,3]
 输出: 1

提示:

  • 二叉树的节点个数的范围是 [1,104]
  • -231 <= Node.val <= 231 - 1

来源:力扣(LeetCode) 链接:leetcode-cn.com/problems/fi… 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:层序遍历

我们将每层的结果放进数组中,最后我们取最后一层结果集的第一个元素就是我们的目标结果

 /**
  * @param {TreeNode} root
  * @return {number}
  */
 var findBottomLeftValue = function (root) {
     let queue1 = [];
     let queue2 = []
     if (root != null) {
         queue1.push(root)
     }
     while (queue1.length !== 0) {
         // 记录当前层级的length
         let length = queue1.length
         let tempArr = []
         // 将当前层级的数据放入数组中
         for (let i = 0; i < length; i++) {
             let temp = queue1.shift()
             if (temp.left != null) {
                 queue1.push(temp.left)
             }
             if (temp.right != null) {
                 queue1.push(temp.right)
             }
             tempArr.push(temp.val)
         }
         queue2.push(tempArr)
     }
     return queue2[queue2.length-1][0]
 };

\