采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
波波老师,您好,请问二叉树创建和打印,测试的代码有么?
十分感谢~
我通常都是这么愚蠢地测试。。。见这里的main函数:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0222-Count-Complete-Tree-Nodes/cpp-0222/main.cpp
不过确实应该根据Leetcode的规则创建一个测试方式。我有时间写一套吧~
你也可以自己试试看哦:)加油!
非常感谢!
bobo老师帮忙看看有没有bug~~
TreeNode* CreatTree(vector<int>vectorTree) { if (vectorTree.empty()) return NULL; assert(vectorTree[0]);//头结点不能为空 queue<TreeNode*> que;//存放可插入的节点(所有非空叶子节点) TreeNode* root; root = new TreeNode(vectorTree[0]); que.push(root); for (int i = 1; i < vectorTree.size(); i++) { assert(!que.empty());//保证传入值有效 如{0,1,2}无效 TreeNode* topNode = que.front();//更新可插入节点(待插入节点的父节点) que.pop(); if (vectorTree[i] != 0) {//如果为0(NULL)时可以不做处理,因为构造节点时left和right默认值为NULL TreeNode* newNode = new TreeNode(vectorTree[i]); que.push(newNode); topNode->left = newNode; } i++;//继续看右边 if (i < vectorTree.size()) {//保证还有值 if (vectorTree[i] != 0){ TreeNode* newNode = new TreeNode(vectorTree[i]); que.push(newNode); topNode->right = newNode; } } } return root; }
用队列实现了leetcode输入规则下的创建二叉树,测试了一下应该能用:)
感谢分享:)加油!
登录后可查看更多问答,登录/注册
课程配套大量BAT面试真题,高频算法题解析,强化训练
1.0k 13
1.1k 12
611 11
1.5k 10
1.1k 10