TreeNode检测用程序

这是一个用于检测和操作二叉树结构中TreeNode的C++程序,适用于LeetCode等平台的二叉树问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

力扣 二叉树“TreeNode” 检测用程序
C++代码如下

struct TreeNode
{
	int val;
	TreeNode* left;
	TreeNode* right;

	TreeNode() :val(0), left(nullptr), right(nullptr) {}
	TreeNode(int _X) :val(_X), left(nullptr), right(nullptr) {}
	TreeNode(int _X, TreeNode* R) :val(_X), left(nullptr), right(R) {}
	TreeNode(int _X, TreeNode* L, TreeNode* R) :val(_X), left(L), right(R) {}
};

inline int getInt(string _X) {
	stringstream SStmp(_X);
	int tmp;
	SStmp >> tmp;
	return tmp;
}

TreeNode* goIntoTree(TreeNode* root, vector<string> Vtmp, int site) {
	if (Vtmp[site - 1] == "null") return nullptr;
	root->val = getInt(Vtmp[site - 1]);
	site = (site << 1) - 1;
	if (site < Vtmp.size() && Vtmp[site] != "null") {
		root->left = new TreeNode();
		root->left = goIntoTree(root->left, Vtmp, site + 1);
	}
	++site;
	if (site < Vtmp.size() && Vtmp[site] != "null") {
		root->right = new TreeNode();
		root->right = goIntoTree(root->right, Vtmp, site + 1);
	}
	return root;
}

//待测试的代码写入区域

int main() {
	TreeNode valTree, * TreePtr = &valTree;
	string Stmp;
	vector<string> Vtmp;
	//输入待测试的树序列,需要带']'
	cin >> Stmp;
	for (int r = Stmp.find(','); r != -1;) {
		Stmp[r] = ' '; 
		++r;
		 r = Stmp.find(',', r);
	}
	stringstream SStmp(Stmp);
	while (SStmp >> Stmp) {
		if (Stmp.front() == '[') Stmp = Stmp.substr(1);
		if (Stmp.back() == ']') Stmp.pop_back();
		Vtmp.push_back(Stmp);
	}
	goIntoTree(TreePtr, Vtmp, 1);
	//这个地方已经完成TreeNode的初始化
	//输出语句区。
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值