LeetCode_populating-next-right-pointers-in-each-node
2015-09-07 20:16
423 查看
原题链接:https://leetcode.com/problems/populating-next-right-pointers-in-each-node/
class Solution {
public:
void connect(TreeLinkNode *root) {
queue<TreeLinkNode* > que1,que2;
TreeLinkNode *pre;
pre = NULL;
if(root)
{
que1.push(root);
while(!que1.empty() || !que2.empty())
{
while(!que1.empty())
{
root = que1.front();
que1.pop();
if(pre)
pre->next = root;
if(root->left)
que2.push(root->left);
if(root->right)
que2.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;
while(!que2.empty())
{
root = que2.front();
que2.pop();
if(pre)
pre->next = root;
if(root->left)
que1.push(root->left);
if(root->right)
que1.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;//注意不能遗漏
}
}
}
};
class Solution {
public:
void connect(TreeLinkNode *root) {
queue<TreeLinkNode* > que1,que2;
TreeLinkNode *pre;
pre = NULL;
if(root)
{
que1.push(root);
while(!que1.empty() || !que2.empty())
{
while(!que1.empty())
{
root = que1.front();
que1.pop();
if(pre)
pre->next = root;
if(root->left)
que2.push(root->left);
if(root->right)
que2.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;
while(!que2.empty())
{
root = que2.front();
que2.pop();
if(pre)
pre->next = root;
if(root->left)
que1.push(root->left);
if(root->right)
que1.push(root->right);
pre = root;
}
root->next = NULL;
pre = NULL;//注意不能遗漏
}
}
}
};
相关文章推荐
- 磁盘及文件系统管理(一)
- Node.js 练习一
- hadoop中启动namenode等出现的一些问题
- leetcode-25 Reverse Nodes in k-Group
- Nodejs找不到static方法
- Ogre Entity/Mesh/SceneNode/SceneManager基本概念
- Node
- Java and Nodejs on AES
- node.js AES/ECB/PKCS5Padding 与其他语言的加密解密通用
- nodejs EXCEL文件数据转json
- LeetCode_Tree_Populating Next Right Pointers in Each Node I II
- [LeedCode OJ]#24 Swap Nodes in Pairs
- nodejs安装不了和npm安装不了的解决方法
- LeetCode题解:Swap Nodes in Pairs
- node.js的"Cannot enqueue Handshake after invoking quit"错误
- hadoop2.x 如何解决NameNode单节点故障问题?
- Node.js 初窥
- Understanding nodejs
- nodeJS删除文件
- 用nodejs解析json数据