2023-07-24力扣今日二题

链接:

988. 从叶结点开始的最小字符串

题意:

二叉树,从叶子结点到根节点可以形成一个字符串,求所有字符串里字典序最小的字符串

解:

dfs暴力求所有字符串,字典序直接用string的运算符

输入就不写了,还要递归

实际代码:

#include
#include
using namespace std;
struct TreeNode
{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};
string ans;
void dfs(TreeNode* now,string temp="")
{
    temp=char('a'+now->val)+temp;
    
    if(now->left!=nullptr) dfs(now->left,temp);
    if(now->right!=nullptr) dfs(now->right,temp);
    
    if(now->left==nullptr && now->right==nullptr)
    {
        if(ans.empty()) ans=temp;
        else if(temp

限制:

  • 给定树的结点数在 [1, 8500] 范围内
  • 0 <= Node.val <= 25

你可能感兴趣的:(力扣每日一题,leetcode,深度优先,算法)