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;
}
相关推荐
三品吉他手会点灯19 分钟前
C语言学习笔记 - 8.C概述 - 学习的目标
c语言·笔记·学习
三品吉他手会点灯36 分钟前
C语言学习笔记 - 10.C概述 - C语言课程总纲要
c语言·笔记·学习
流年如夢1 小时前
结构体:定义、使用与内存布局
c语言·开发语言·数据结构·c++·算法
三品吉他手会点灯1 小时前
C语言学习笔记 - 6.C概述 - C的重要性
c语言·笔记·学习
wuminyu1 小时前
专家视角看 Java 字节码与Class 文件格式
java·linux·c语言·jvm·c++
YSF2017_31 小时前
C语言-13-制作动态库
c语言·开发语言
『昊纸』℃1 小时前
C语言学习心得集合 篇1
c语言·算法·编程基础·学习心得·实践操作
Chase_______2 小时前
LeetCode 1456:定长子串中元音的最大数目
算法·leetcode
6Hzlia2 小时前
【Hot 100 刷题计划】 LeetCode 84. 柱状图中最大的矩形 | C++ 两次单调栈基础扫法
c++·算法·leetcode
棋子入局2 小时前
C语言实现消消乐游戏(6)
c语言·算法·游戏