Leetcode 513. Find Bottom Left Tree Value | | Leetcode 513. Find Bottom Left Tree Value 文章作者:Tyan博客:noahsnail.com | CSDN | 简书 1. Description 2. Solution Iterative 12345678910111213141516171819202122232425262728293031323334/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> currentLayer; currentLayer.push(root); while(!currentLayer.empty()) { queue<TreeNode*> nextLayer; int val = currentLayer.front()->val; while(!currentLayer.empty()) { TreeNode* node = currentLayer.front(); currentLayer.pop(); if(node->left) { nextLayer.push(node->left); } if(node->right) { nextLayer.push(node->right); } } if(nextLayer.empty()) { return val; } currentLayer = nextLayer; } }}; Recursive 1234567891011121314151617181920212223242526272829303132333435363738/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> list; list.push(root); return findValue(list); } int findValue(queue<TreeNode*> currentLayer) { int val = currentLayer.front()->val; queue<TreeNode*> nextLayer; while(!currentLayer.empty()) { TreeNode* node = currentLayer.front(); currentLayer.pop(); if(node->left) { nextLayer.push(node->left); } if(node->right) { nextLayer.push(node->right); } } if(nextLayer.empty()) { return val; } else { return findValue(nextLayer); } }}; Reference https://leetcode.com/problems/find-bottom-left-tree-value/description/ 如果有收获,可以请我喝杯咖啡! 赏 微信打赏 支付宝打赏