C语言 | Leetcode C语言题解之第144题二叉树的前序遍历

题目:

题解:

cpp 复制代码
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
    int* res = malloc(sizeof(int) * 2000);
    *returnSize = 0;
    if (root == NULL) {
        return res;
    }

    struct TreeNode *p1 = root, *p2 = NULL;

    while (p1 != NULL) {
        p2 = p1->left;
        if (p2 != NULL) {
            while (p2->right != NULL && p2->right != p1) {
                p2 = p2->right;
            }
            if (p2->right == NULL) {
                res[(*returnSize)++] = p1->val;
                p2->right = p1;
                p1 = p1->left;
                continue;
            } else {
                p2->right = NULL;
            }
        } else {
            res[(*returnSize)++] = p1->val;
        }
        p1 = p1->right;
    }
    return res;
}
相关推荐
Run_Teenage35 分钟前
关于C/C++语言的初学者在哪刷题,怎么刷题
c语言
YaoSolar1 小时前
刷题记录(LeetCode 78 子集)
算法·leetcode
梅茜Mercy1 小时前
C++:入门详解(关于C与C++基本差别)
java·c语言·c++
小呀小萝卜儿4 小时前
2025-03-07 学习记录--C/C++-PTA 习题8-6 删除字符
c语言·学习
hrrrrb4 小时前
【C语言】数组篇
c语言·开发语言
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧9 小时前
C语言_数据结构总结8:链式队列
c语言·开发语言·数据结构·链表·visualstudio·visual studio
Icomi_10 小时前
【神经网络】0.深度学习基础:解锁深度学习,重塑未来的智能新引擎
c语言·c++·人工智能·python·深度学习·神经网络
不知道取啥耶10 小时前
C++ 滑动窗口
数据结构·c++·算法·leetcode
菜鸟008811 小时前
蓝桥杯第二天:2023省赛C 1题 分糖果
c语言·职场和发展·蓝桥杯
我想吃烤肉肉12 小时前
leetcode-sql数据库面试题冲刺(高频SQL五十题)
数据库·sql·leetcode