using System.Collections.Generic;
public static void Main()
CopyBinaryTreeIterative(a);
public static Node CopyBinaryTreeRecursive(Node root){
if(root==null) return null;
Node newNode=new Node(root.data);
Console.WriteLine(newNode.data.ToString());
newNode.left=CopyBinaryTreeRecursive(root.left);
newNode.right=CopyBinaryTreeRecursive(root.right);
public static Node CopyBinaryTreeIterative(Node root){
if(root==null) return null;
Queue<Node> q=new Queue<Node>();
Queue<Node> q1=new Queue<Node>();
q1.Enqueue(new Node(root.data));
q1.Peek().left=new Node(current.left.data);
q1.Enqueue(q1.Peek().left);
q1.Peek().right=new Node(current.right.data);
q1.Enqueue(q1.Peek().right);
q.Enqueue(current.right);
Console.WriteLine(q1.Peek().data.ToString());