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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springbootapplication运行机制_航空器运行阶段是指什么

    springbootapplication运行机制_航空器运行阶段是指什么SpringApplication运行阶段围绕run(String…)方法展开,该过程结合初始化阶段完成的状态进一步完善了运行时所需要准备的资源,随后启动Spring应用上下文,在此期间伴随SpringBoot和Spring事件的触发,形成完整的SpringApplication生命周期:SpringApplication准备阶段SpringApplication启动阶段SpringApplication启动后阶段1、SpringApplication准备阶段本阶段涉及的范围从run(St

    2025年10月10日
    2
  • glib和glibc_libc.so.6 version GLIBC_2.14

    glib和glibc_libc.so.6 version GLIBC_2.14转自:http://blog.csdn.net/yasi_xi/article/details/9899599【glibc和libc】glibc和libc都是Linux下的C函数库。

    2022年8月3日
    5
  • c语言图书管理系统出现的问题,C语言图书管理系统中的问题「建议收藏」

    c语言图书管理系统出现的问题,C语言图书管理系统中的问题「建议收藏」系统使用细分的功能模块c语言图书管理系统,分别在main.c文件中调用.开发环境为Win7,Netbeans8.0.2这是main.c#include#include#include#include“bmenu.h”#include“search_allinformation.h”typedefstructbookinfo{字符数[20];/*书号*/字符名称[40];/*书…

    2022年10月11日
    1
  • 省市区三级联动数据库_牧羊人之心舰r联动炼金配方

    省市区三级联动数据库_牧羊人之心舰r联动炼金配方<template><div>省市区联动<Cascadertrigger="hover"placeholder="请选择您的城市"style="width:238px;display:inline-block;":data="provs"v-model="formValidate.cityId"

    2025年7月2日
    2
  • 用js来实现那些数据结构11(字典)

    我们这篇文章来说说Map这种数据结构如何用js来实现,其实它和集合(Set)极为类似,只不过Map是【键,值】的形式存储元素,通过键来查询值,Map用于保存具有映射关系的数据,Map里保存着两组数据:

    2022年3月25日
    64
  • ATA考试注意事项「建议收藏」

    ATA考试注意事项「建议收藏」一、考试前将所有计算机除掉还原卡及还原软件。二、officeXp安装要用完全安装。三、服务器端尽量不要刷新所有客户端否则引起考试管理系统死机。四、拍照功能无法使用,可重新启动考试管理系统。五、服务器端无法扫描到客户端,除了服务器与客户端必须在同一网段内,可看一下客户端是否启动llistening    …

    2022年7月13日
    23

发表回复

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

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