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;
}
相关推荐
§ꦿCFོ༉44 分钟前
嵌入式八股—C语言入门学习(一)
c语言·编程语言·嵌入式八股文
圣保罗的大教堂1 小时前
leetcode 3736. 最小操作次数使数组元素相等 III 简单
leetcode
文丑颜不良啊2 小时前
LeetCode1881~1990题目解析
java·leetcode
沐晓时光2 小时前
C语言入门,字符串和字符串函数知识讲解
c语言·开发语言
文丑颜不良啊5 小时前
LeetCode1861~1880题目解析
java·leetcode
文丑颜不良啊5 小时前
LeetCode1921~1940题目解析
java·leetcode
一去不复返的通信er8 小时前
排序 + 双指针:力扣15三数之和
算法·leetcode
文丑颜不良啊8 小时前
LeetCode1901~1920题目解析
java·leetcode
Pniubi8 小时前
力扣3无重复字符的最长字串(滑动窗口)
算法·leetcode·职场和发展
智者知已应修善业9 小时前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机