typedef struct TreeNode Node;
#define LEN 0xffff
void set(Node *node, int level, int *arr, int *max){
if(!node) return;
if(level > *max) (*max) = level;
arr[level] = (arr[level]==INT_MAX) ? node->val : arr[level];
set(node->right, level+1, arr, max);
set(node->left, level+1, arr, max);
}
int* rightSideView(struct TreeNode* root, int* returnSize){
int *arr = (int *)malloc(sizeof(int) * LEN);
int max = 0;
int i;
for(i=0; i<LEN; i++) arr[i] = INT_MAX;
set(root, 0, arr, &max);
*returnSize = !root ? 0 : ( max + 1);
return arr;
}
LeetCode-199-二叉树的右视图-C语言
最新推荐文章于 2023-03-06 09:17:01 发布