本文主要是介绍二叉树找数左下角值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目很容易理解:就是找二叉树左下角的值
思路:肯定是使用递归的方法,并且实现的效果是,先到最左边,然后当为叶子结点的时候比较一下当前是否为最大深度,如果是更新最大深度,并且修改结果。如果不是直接return。然后退回一步,去看下一个路口。
根据思路写代码
结束条件是:结点左边和右边都为空,if函数里的内容就是,更新最大深度,修改结果
递归函数先后顺序:先左再右
退回上一个节点路口:在递归函数下面加上depth--
看代码:
class Solution {
public:int maxDepth = INT_MIN;int result;void traversal(TreeNode* root, int depth) {if (root->left == NULL && root->right == NULL) {if (depth > maxDepth) {maxDepth = depth;result = root->val;}return;}if (root->left) {depth++;traversal(root->left, depth);depth--; // 回溯}if (root->right) {depth++;traversal(root->right, depth);depth--; // 回溯}return;}int findBottomLeftValue(TreeNode* root) {traversal(root, 0);return result;}
};
这篇关于二叉树找数左下角值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!