题源:LeetCode
- 问题描述
- 算法思想
从右边看到的结点必是每层的最后一个结点,故利用层次遍历,求每层的最后一个结点即可
void rightElevation(BiTree T){
if(!T) return null;
BiTree Q[MAXSISE],temp[MAXSIZE];
int rear=-1,front=-1,last=0;
TNode *p;
int i=0;
while(rear>front){
Q[++front]=p;
if(p->lchild) Q[++rear]=p->lchild;
if(p->rchild) Q[++rear]=p->rchild;
if(last==front){
temp[i++]=p;
last = rear;
}
}
for(int j=0;j++) print(temp[i]);
}