typedef struct TNode {
int data;
TNode* left;
TNode* right;
TNode* next;
};
//时间复杂度为O(n),空间复杂度为O(n)
void addNext(TNode* root) {
if (!root) {
return;
}
queue<TNode*> q;
q.push(root);
while (!q.empty()) {
int levelLength = q.size();
TNode* first = NULL;
TNode* second = NULL;
while (levelLength) {
first = q.front();
q.pop();
if (first->left) {
q.push(first->left);
}
if (first->right) {
q.push(first->right);
}
if (--levelLength == 0) {
break;
}
second = q.front();
first->next = second;
}
}
}
对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。
最新推荐文章于 2021-08-31 10:07:04 发布