10分求助!大佬求助!
查看原帖
10分求助!大佬求助!
1276357
xiayihe000楼主2025/1/29 21:21
#include <vector>

using namespace std;

vector<long long> preorder;

void f(int n, long long _start, long long _end)
{
	if (n == 0) return;
	
	long long rootVal = _end;
	preorder.push_back(rootVal);
	
	long long mid = (_start + _end) / 2;
	f(n - 1, _start, mid -1);
	f(n - 1, mid, _end -1);
}

int n;

int main(void)
{
	cin >> n;
	
	f(n, 1, (1LL << n) - 1);
	
	for (int i = 0; i < int(preorder.size()); ++i) {
		cout << preorder[i] << (i == int(preorder.size() - 1) ? "" : " ");
	}
	cout << endl;
	
	return 0;
}
2025/1/29 21:21
加载中...