today i got a very interesting topic to use Queue to implement the level Order function
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
class Node{
public Node left,right;
public int data;
public Node(int data){
this.data=data;
left=right=null;
}
}
class Solution{
static void levelOrder(Node root){
Queue<Node> nodeQueue=new Queue<Node>();
if(root !=null){
nodeQueue.Enqueue(root);
}
while(nodeQueue.Count>0){
Node current=nodeQueue.Dequeue();
Console.Write($"{current.data} ");
if(current.left !=null){
nodeQueue.Enqueue(current.left);
}
if(current.right !=null){
nodeQueue.Enqueue(current.right);
}
}
}
static Node insert(Node root, int data){
if(root==null){
return new Node(data);
}
else{
Node cur;
if(data<=root.data){
cur=insert(root.left,data);
root.left=cur;
}
else{
cur=insert(root.right,data);
root.right=cur;
}
return root;
}
}
static void Main(String[] args){
Node root=null;
int T=Int32.Parse(Console.ReadLine());
while(T-->0){
int data=Int32.Parse(Console.ReadLine());
root=insert(root,data);
}
levelOrder(root);
}
}
No comments:
Post a Comment