int* rightSideView(struct TreeNode* root, int* returnSize){
if(root==NULL){
*returnSize = 0;
return NULL;
}
int *view = (int *)malloc(sizeof(int)*100);
struct TreeNode* queue[100];
struct TreeNode* pNode = NULL;
int front = 0;
int rear = -1;
int pre_rear;
int row = 0;
queue[++rear] = root;
while(front<=rear){
view[row++] = queue[rear]->val;
pre_rear = rear;
while(front<=pre_rear){
pNode = queue[front++];
if(pNode->left!=NULL)
queue[++rear] = pNode->left;
if(pNode->right!=NULL)
queue[++rear] = pNode->right;
}
}
*returnSize = row
return view;
}