力扣(LeetCode)116. 填充每个节点的下一个右侧节点指针(C++)
创始人
2024-02-28 02:53:03
0

模拟

这题可以直接操作根节点,我们保存根结点,用作最终返回值。

填充每个结点的 nextnextnext 指针,其实是树的层序遍历。由于 nextnextnext 指针的存在,我们可以做到 O(1)O(1)O(1) 的空间复杂度。

算法:
从根结点出发,利用 nextnextnext 指针同层右移,每个结点的左儿子的 next=next=next= 右儿子,右儿子的 next=next=next= 下一结点的左儿子。

p->left->next = p->right;//左儿子的 next=右儿子
p->right->next = p->next->left;//右儿子的 next=下一结点的左儿子

一层遍历结束后, rootrootroot 走到左儿子,进入下一层遍历。

class Solution {
public:Node* connect(Node* root) {if(!root) return root;Node *temp = root;while(root->left){for(auto p = root;p;p = p ->next){p->left->next = p->right;if(p->next) p->right->next = p->next->left;}root = root->left;}return temp;}
};
  1. 时间复杂度 : O(n)O(n)O(n) , nnn 是结点个数 ,每个结点至多被遍历一次,时间复杂度 O(n)O(n)O(n) 。
  2. 空间复杂度 : O(1)O(1)O(1) , 只使用常量级空间 。

AC

AC

相关内容

热门资讯

原创 戴... 最近,关于前国脚戴琳的欠薪丑闻无疑是引发了球迷的持续关注,从10月25日,媒体人李平康率先爆料,晒出...
思想政治工作条例最新修订内容,... 思想政治工作条例最新修订内容,思想政治工作条例全文下载 思想政治工作条例最新修订,全文下载与深度解读...
CBA潜力赛为何打成“老将赛”... 计时钟归零,双方教练握手致意,观众开始退场,CBA联赛的正赛宣告结束。然而球场并未就此沉寂,替补席上...
“手术钻头断裂遗留患者体内”,... 12月21日,湖南祁阳市卫生健康局发布情况通报称,近日,有媒体报道祁阳市中医医院发生骨科手术钻头断裂...
代驾纠纷 代驾时撞伤行人、车辆发生故障…… 这些都和车主无关,应由代驾赔偿? 观点: 使用代驾服务并非将所有...
公司股东与妻子分居期间出轨女下... 近日据报道,宁夏永宁县人民法院一审查明公司股东李某乙在与妻子李某甲分居期间,与公司女员工马某某存在不...
动物学家、律师和创作者,Thi... 12月21日,以“一起·了不起”为主题的2025 ThinkPad黑FUN礼在京举办。活动现场,律师...
徐奇渊:扩内需与对外政策紧密相... 近日,中国海关总署发布了一组数据令人关注:2025年前11个月,我国货物贸易顺差达到1.08万亿美元...
46岁上海独居女子不幸离世,官... 居住在上海虹口区46岁的蒋女士因突发脑溢血于今年10月入院,远亲吴先生与其公司共同垫付了医药费,但她...