leetcode – Populating Next Right Pointers in Each Node II

leetcode – Populating Next Right Pointers in Each Node II

大家好,又见面了,我是全栈君。

Follow up for problem “Populating Next Right Pointers in Each Node“.

What if the given tree could be any binary tree?

Would your previous solution still work?

Note:

  • You may only use constant extra space.

For example,
Given the following binary tree,

         1
       /  \
      2    3
     / \    \
    4   5    7

After calling your function, the tree should look like:

         1 -> NULL
       /  \
      2 -> 3 -> NULL
     / \    \
    4-> 5 -> 7 -> NULL

/**
 * Definition for binary tree with next pointer.
 * struct TreeLinkNode {
 *  int val;
 *  TreeLinkNode *left, *right, *next;
 *  TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
 * };
 */
struct TreeLinkNode
{
	int val;
	TreeLinkNode *left, *right, *next;
	TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
};
class Solution {
public:
    void connect(TreeLinkNode *root) {
		TreeLinkNode *head = NULL;
		TreeLinkNode *prev = NULL;
		TreeLinkNode *cur  = root;
		while(cur != NULL)
		{
			while(cur != NULL)
			{
				if(cur->left != NULL)
				{
					if(prev != NULL)
					{
						prev->next = cur->left;
					}
					else
					{
						head = cur->left;
					}
					prev = cur->left;
				}
				if(cur->right != NULL)
				{
					if(prev != NULL)
					{
						prev->next = cur->right;
					}
					else
					{
						head = cur->right;
					}
					prev = cur->right;
				}
				cur = cur->next;
			}
			cur = head;
			head = NULL;
			prev = NULL;
		}
    }
};

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116532.html原文链接:https://javaforall.net

(0)
上一篇 2022年1月20日 上午6:00
下一篇 2022年1月20日 上午7:00


相关推荐

  • 十大常用经典排序算法总结!!!

    十大常用经典排序算法总结!!!爆肝整理 堪称全网最详细的十大常用经典排序算法总结 写在开头 本文经过参考多方资料整理而成 全部参考目录会附在文章末尾 很多略有争议性的细节都是在不断查阅相关资料后总结的 具有一定普适性 总表 相关解释 稳定 如果原本序列中 a 在 b 前面且 a b 排序后 a 仍在 b 前面 顺序不变 不稳定 如果原本序列中 a 在 b 前面且 a b 排序后 a 可能在 b 后面 顺序可能发生改变 内排序 所有排序操作均在内存中完成 外排序 由于数据量太大 将其放入磁盘中 排序过程中需要磁盘与内存之间的数据传输

    2026年3月17日
    2
  • AntD Pro v5记录-布局

    AntD Pro v5记录-布局1 屏蔽菜单展开 收缩功能 app tsx 文件 exportconstl 中配置 collapsedBut false2 菜单布局更改布局 AntDesignPro 隐藏布局 4 隐藏某一菜单及子菜单 hideInMenu true hideChildren true routes tsexportdefa name test path

    2026年3月17日
    2
  • WordPress建站_如何建设社区

    Wordpress建站_如何建设社区创始人或建设者,您需要了解将社区集成到您的项目中的哪些内容?采用什么样的去中心化的方式?”在2020年之前,我花了很多时间分析中心化社区建设最佳实践的来龙去脉,主要来自我作为用户(Foursquare、Meetup、Twitter),作为一名员工(StackOverflow),或者在我在UnionSquareVentures期间通过渗透了解到的成功Web2网络示例。…

    2022年10月2日
    3
  • vscode 快捷键图[通俗易懂]

    vscode 快捷键图[通俗易懂]

    2022年6月11日
    58
  • 幅度调制(线性调制)原理

    幅度调制(线性调制)原理之前在书上第 5 页我们学过模拟通信系统模型和数字通信系统模型里面都有调制器今天我们来具体学一下什么是调制调制 把货物搭载到飞机的某个仓位上利用专业术语表述就是把消息搭载到载波的某个参数上载波就是高频周期性振荡信号解调就是从已调波恢复出原信号调制也分广义调制和狭义调制 广义调制就是我们学的第五页那一个很长的图狭义调制 把消息搭载的载波的某个参数上 相对广义过程很长 直接牵扯了很多与调制

    2026年3月19日
    2
  • 求圆锥曲线的离心率

    求圆锥曲线的离心率前言求圆锥曲线的离心率问题中 使用频度比较多的就是定义式 比如椭圆的定义 双曲线的定义 抛物线的定义 一 公式提示注意别忘了使用初中平面几何知识 法 1 求 a b c 法 2 不知道 a b c 时 转化为寻找 a b c 的等量关系 二 变形技巧三 典例剖析例 12 2019 届高三理科数学三轮模拟试题 基本题目

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号