日更力扣257二叉树的所有路径

日更力扣257二叉树的所有路径

haimian
2024-11-27 / 1 评论 / 22 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年11月27日,已超过143天没有更新,若内容或图片失效,请留言反馈。

还是老规矩上题目
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。

示例 1:
m401tevw.png

输入:root = [1,2,3,null,5]
输出:["1->2->5","1->3"]
示例 2:

输入:root = [1]
输出:["1"]

接下来上代码

void cons_paths(struct TreeNode* root,char** ss,int* stack,int top,int* returnSize){
    if(root == NULL){
        return;
    }else{
        if(root->left != NULL || root->right !=NULL){
            stack[top] = root -> val;
            top++;
            cons_paths(root->left,ss,stack,top,returnSize);
            cons_paths(root->right,ss,stack,top,returnSize);
        }else{
            char* s = (char*)malloc(sizeof(int) * 500);
            int len = 0;
            int i = 0;
            for(i;i<top;i++){
                len = len + sprintf(s + len,"%d->",stack[i]);
            }
            sprint(s+len,"%d->",root->val);
            ss[(*returnSize)] = s;
            (*returnSize)++;
        }
    }
}
char** binaryTreePaths(struct TreeNode* root, int* returnSize) {
    char** ss = (char**)malloc(sizeof(char*) * 100);
    *returSize = 0;
    int stack[100];
    cons_paths(root,ss,stack,0,returnSize);
    return ss; 
}

思路来源于某大佬,他大概意思是这样的,先进性一个stack 把一条路线是的所有都是传到一个stack里面 然后再一个一个拿数组里面来,先写这些,明天好好的吧全部的思路解释清楚

1

评论 (1)

取消
  1. 头像
    GGBond
    Windows 10 · Google Chrome

    好厉害呀!!不愧是要考985的人呀!

    回复