leetcode-513. Find Bottom Left Tree Value

    xiaoxiao2021-03-30  35

    思路: 简单的递归。利用help函数,如果level大于当前最大level,说明它是该level一个最左的一个值 注意传入的是引用。

    其他思路: 还有一种方法是利用queue,从右往左往里push,思想是二叉树的层序遍历,只不过是从右向左,最后一个位置就是最后的结果。

    C++代码:

    /** * 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: static void help(TreeNode* root, pair<int,int> &ret, int level) { if (root == NULL) return; if (root->left==NULL && root->right==NULL) { if (ret.first < level) { ret.first = level; ret.second = root->val; } return; } help(root->left, ret, level+1); help(root->right, ret, level+1); return; } int findBottomLeftValue(TreeNode* root) { if (root == NULL) return 0; pair<int, int> ret{0,root->val}; help(root, ret, 0); return ret.second; } };
    转载请注明原文地址: https://ju.6miu.com/read-665042.html

    最新回复(0)