您的位置:首页 > Web前端 > Node.js

【leetcode】116. Populating Next Right Pointers in Each Node

2017-09-03 07:49 351 查看


「思路」

因为是完美的二叉树所以问题的难度降低了不少。如果一个root有左右子节点则左next指向右。如果root有next节点,则root的右next指向root的next的左,否则指向NULL。

「运行结果」



其中version 2 仅仅是把两个函数合并成了一个函数,效率上提高了3ms。

- version1

class Solution {
public:
void connect(TreeLinkNode *root) {
if(!root)return;
rightlink(root);
}
void rightlink(TreeLinkNode *root)
{
if(root->left && root->right)
{
root->left->next=root->right;
if(root->next)
{
root->right->next=root->next->left;
}
else
{
root->next=NULL;
}
rightlink(root->left);
rightlink(root->right);
}
else return;
}
};


version 2

class Solution {
public:
void connect(TreeLinkNode *root) {
if(!root)return;
if(root->left && root->right)
{
root->left->next=root->right;
if(root->next)
{
root->right->next=root->next->left;
}
else
{
root->next=NULL;
}
connect(root->left);
connect(root->right);
}
else return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: