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


相关推荐

  • MPP数据库实现入门

    MPP数据库实现入门大规模并行分析 MPP 数据库自诞生以来 为数据驱动型企业提供了巨大的机会 近日 HashData 联合创始人王占伟围绕 MPP 数据库的基础原理及技术特点与网友进行了分享交流 本文摘选部分精彩观点 与大家共享 如上图所示 MPP 数据库内核主要包括模块查询 编译查询 优化任务调度查询 执行存储 MPP 数据库的 API applicationp 或者命令行接收到了 SQL 查询请求之后 系统先经过查询编译 然后查询优化 通过任务调度执行从存储引擎里面把数据拉出来 计算出结果

    2026年3月18日
    3
  • 用Pycharm导入csv文件

    用Pycharm导入csv文件1 读取本地 CSV 输出结果 2 分析数据输出结果 3 导出 csv 文件

    2026年3月19日
    2
  • Idea激活码最新教程2024.2.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2024.2.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2024 2 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 2 2 成功激活

    2025年5月30日
    6
  • es数据库查询API「建议收藏」

    es数据库查询API「建议收藏」1.背景ES数据库是非关系型数据库2.ES数据库优点1.存储优化内存中使用有限状态机FST优化本质上是前缀树加上后缀树的结合,利用这个数据结构可以把Term更节省内存地放置并查询,它有着字典树的查询时间复杂度,但是由于做了后缀合并会更节约内存传统Bitmap优化使用Bitmap来记录文档的Id,每个bit对应一个文档,表示它是否存在。2.联合查询优化若要对多个t…

    2022年5月24日
    274
  • 2.在Ubuntu中安装 PyCharm的步骤[通俗易懂]

    2.在Ubuntu中安装 PyCharm的步骤[通俗易懂]在Ubuntu下安装PyCharm软件的详细步骤介绍

    2025年6月14日
    6
  • excel中pmt函数是什么意思_excel利用函数计算

    excel中pmt函数是什么意思_excel利用函数计算关于PMT函数,从百科中就可以搜到基本解释:PMT函数即年金函数,基于固定利率及等额分期付款方式,返回贷款的每期付款额。PMT(Rate,Nper,Pv,Fv,Type)。语法参数●R

    2022年8月6日
    8

发表回复

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

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