如题:m, k 均从 0 开始计数。
#include<iostream>
using namespace std;
void print_level_node(BinTree root,int level,int num){
if(!root || level < 0 || k<0)
return;
queue<BinTree> que1,que2;
int cnt=m=k=tag=0;
TNode *tmp;
que1.enqueue(root);
while(m<level || k < num){
cnt = 0;
while(!que1.empty()){
tmp = que1.front();
que1.pop();
cnt++;
if(m==level && cnt == k)
tag = 1;
if(tmp->left)
que2.enqueue(tmp->left);
if(tmp->right)
que2.enqueue(tmp->right);
}
if(tag)
break;
m++;
cnt = 0 ;
while(!que2.empty()){
tmp = que2.front();
que2.pop();
cnt++;
if(m==level && cnt==k)
tag = 1;
if(tmp->left)
que1.enqueue(tmp->left);
if(tmp->right)
que1.enqueue(tmp->right);
}
m++;
}
}