树 513. 找树左下角的值
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树 513. 找树左下角的值相关的知识,希望对你有一定的参考价值。
题目:
解法:
解题思路
中序遍历,使用一个全局遍量记录最大深度,当到达的深度大于目前的最大深度时,为第一次到达该最大深度,更新结果,不超过该深度时,均不会更新。
复杂度
时间复杂度:每个结点访问一次,O(n)O(n)
空间复杂度:不计算调栈,O(1)O(1);计算调栈O(h)O(h),h为最大深度
1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 int res = 0; 13 int maxlevel = 0; 14 15 int findBottomLeftValue(TreeNode* root) 16 { 17 helper(root, 1); 18 return res; 19 } 20 21 void helper(TreeNode* root, int level) 22 { 23 if(root == NULL) 24 { 25 return; 26 } 27 28 helper(root->left, level + 1); 29 30 if(level > maxlevel) 31 { 32 maxlevel = level; 33 res = root->val; 34 } 35 36 helper(root->right, level + 1); 37 } 38 };
以上是关于树 513. 找树左下角的值的主要内容,如果未能解决你的问题,请参考以下文章