mirror of
				https://git.wolves.top/wolves/leetcode.git
				synced 2025-11-04 17:26:32 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			774 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			774 B
		
	
	
	
		
			C
		
	
	
	
	
	
//
 | 
						|
// Created by 李洋 on 2024/2/19.
 | 
						|
//
 | 
						|
 | 
						|
#ifndef LEETCODE_C_590_H
 | 
						|
#define LEETCODE_C_590_H
 | 
						|
 | 
						|
#include <stdlib.h>
 | 
						|
 | 
						|
 | 
						|
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 helper(const struct Node* root, int* res, int* pos) {
 | 
						|
    if (NULL == root) {
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    for (int i = 0; i < root->numChildren; i++) {
 | 
						|
        helper(root->children[i], res, pos);
 | 
						|
    }
 | 
						|
    res[(*pos)++] = root->val;
 | 
						|
}
 | 
						|
 | 
						|
int* postorder(struct Node* root, int* returnSize) {
 | 
						|
    int * res = (int *)malloc(sizeof(int) * MAX_NODE_SIZE);
 | 
						|
    int pos = 0;
 | 
						|
    helper(root, res, &pos);
 | 
						|
    *returnSize = pos;
 | 
						|
    return res;
 | 
						|
}
 | 
						|
 | 
						|
#endif //LEETCODE_C_590_H
 |