您的位置:首页 > 其它

二叉树层序遍历应用:要求将所有结点加上一个m_pNext指针,指向同层右侧的结点,右侧若无结点则指向NULL,写出其中的Connect函数。

2013-10-19 22:02 615 查看
该二叉树结点结构:

struct TreeNode{
TreeNode* m_pLeft;
TreeNode* m_pRight;
TreeNode* m_pSibling;
int m_nValue;
}

层序遍历主要是利用队列。

Connect函数的代码如下:

TreeNode* Connect(TreeNode* root)
{
if(root==NULL)
return	NULL;
std::deque< TreeNode*>queueNode;
std::deque< TreeNode*>iterator iter;

queueNode.push_back(root);
while(!queueNode.empty())
{
for(iter=queueNode.begin;iter!=queueNode.end-1;iter++)
{
(*iter)->m_pSibling=*(iter+1);
}
(*iter)->m_pSibling=NULL;
for(iter=queueNode.begin;iter!=queueNode.end;iter++)
{
queueNode.push_back((*iter)->m_pLeft);
queueNode.push_back((*iter)->m_pRight);
queueNode.pop_front();
}
}
return root;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐