#easy #树
给定一个 n 叉树的根节点 root
,返回 其节点值的 前序遍历 。
n 叉树在输入中按层序遍历进行序列化表示,每组子节点由空值 null
分隔(请参见示例)。
提示:
- 节点总数在范围
[0, 104]
内 0 <= Node.val <= 104
- n 叉树的高度小于或等于
1000
思路
前序遍历,根左右
/**
* Definition for a Node.
* struct Node {
* int val;
* int numChildren;
* struct Node** children;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
#define MAX_NODE_SIZE 10000
void pre(struct Node* root, int* res, int* pos) {
if (root == NULL)
return;
// 先访问根节点
res[(*pos)++] = root->val;
for (int i = 0; i < root->numChildren; i++) {
pre(root->children[i], res, pos);
}
}
int* preorder(struct Node* root, int* returnSize) {
int* res = (int*)malloc(sizeof(int) * MAX_NODE_SIZE);
int pos = 0;
pre(root, res, &pos);
*returnSize = pos;
return res;
}```