力扣75. 颜色分类c语言
时间: 2024-10-10 10:10:17 浏览: 63
力扣第75题是一个经典的编程题目,叫做“二分查找树的前序遍历”,而不是颜色分类。题目要求实现一个函数,输入是一棵二叉搜索树(BST)的根节点,你需要按照二叉搜索树的前序遍历顺序返回一个排序数组。
在这个场景下,涉及到的主要算法是递归或迭代的前序遍历。前序遍历的顺序是先访问根节点,然后遍历左子树,最后遍历右子树。对于C语言来说,你可以使用结构体表示二叉树的节点,并编写函数来完成节点值的添加、删除以及前序遍历。
```c
#include <stdio.h>
typedef struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
void preorderTraversal(TreeNode* root, int arr[], int& index) {
if (root != NULL) {
// 添加当前节点到结果数组
arr[index++] = root->val;
// 递归遍历左子树
preorderTraversal(root->left, arr, index);
// 递归遍历右子树
preorderTraversal(root->right, arr, index);
}
}
// 示例用法
int main() {
TreeNode* root = // 创建二叉搜索树...
int arr[100]; // 假设最大长度为100
int n = preorderTraversal(root, arr, 0); // n为实际的元素个数
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文