This commit is contained in:
Electrominch
2022-10-12 02:30:23 +03:00
parent 02afed9c4c
commit 01c5720116
39 changed files with 517 additions and 30 deletions

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>_116._Populating_Next_Right_Pointers_in_Each_Node</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,25 @@
namespace _116._Populating_Next_Right_Pointers_in_Each_Node;
// Definition for a Node.
public class Node
{
public int val;
public Node? left;
public Node? right;
public Node? next;
public Node() { }
public Node(int _val)
{
val = _val;
}
public Node(int _val, Node? _left, Node? _right, Node? _next)
{
val = _val;
left = _left;
right = _right;
next = _next;
}
}

View File

@@ -0,0 +1,9 @@
namespace _116._Populating_Next_Right_Pointers_in_Each_Node;
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}

View File

@@ -0,0 +1,31 @@
namespace _116._Populating_Next_Right_Pointers_in_Each_Node;
public class Solution
{
public Node? Connect(Node? root)
{
if (root == null)
return null;
List<Node> curLevel = new List<Node>() { root };
List<Node> nextLevel = new List<Node>();
while (curLevel.Count > 0)
{
for (int i = 0; i < curLevel.Count - 1; i++)
curLevel[i].next = curLevel[i + 1];
nextLevel.Clear();
foreach (var n in curLevel)
{
if (n == null)
continue;
if (n.left != null)
nextLevel.Add(n.left);
if (n.right != null)
nextLevel.Add(n.right);
}
List<Node> buf = curLevel;
curLevel = nextLevel;
nextLevel = buf;
}
return root;
}
}