题目
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
假设二叉树中至少有一个节点。
示例 1:
输入: root = [2,1,3] 输出: 1
示例 2:
输入: [1,2,3,4,null,5,6,null,null,7] 输出: 7
解题
方法一:BFS
python解法
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def findBottomLeftValue(self, root: TreeNode) -> int: queue = [root] num = None while queue: l = len(queue) for i in range(l): cur = queue.pop(0) if i==0: num = cur.val left,right = cur.left,cur.right if left: queue.append(left) if right: queue.append(right) return num
c++解法
class Solution { public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> queue; queue.push(root); int res=0; while(!queue.empty()){ int l=queue.size(); for(int i=0;i<l;i++){ TreeNode* cur=queue.front(); queue.pop(); if(i==0) res=cur->val; if(cur->left) queue.push(cur->left); if(cur->right) queue.push(cur->right); } } return res; } };