import java.util.*;
class Node {
int val;
Node left;
Node right;
Node() {}
Node(int val) {
this.val = val;
}
Node(int val, Node left, Node right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public class Main {
public static Node createBinaryTree(int[] arr) {
if (arr == null || arr.length == 0) return null;
Node root = new Node(arr[0]);
Queue<Node> queue = new LinkedList<>();
queue.add(root);
int i = 1;
while (!queue.isEmpty() && i < arr.length) {
Node current = queue.poll();
if (i < arr.length && arr[i] != -1) {
current.left = new Node(arr[i]);
queue.add(current.left);
}
i++;
if (i < arr.length && arr[i] != -1) {
current.right = new Node(arr[i]);
queue.add(current.right);
}
i++;
}
return root;
}
public static Node prev=null,first=null,second=null;
public static void inorder(Node root) {
if(root==null)
return ;
inorder(root.left);
if(prev!=null&&root.val<prev.val){
if(first==null)
first=prev;
second=root;
}
prev=root;
inorder(root.right);
}
static void printInorder(Node node) {
if (node == null)
return;
printInorder(node.left);
System.out.print(node.val+" ");
printInorder(node.right);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s[] = sc.nextLine().split(" ");
int n = s.length;
int arr[] = new int[n];
for(int i=0;i<n;i++){
if(! s[i].equals("N"))
arr[i]=Integer.parseInt(s[i]);
else
arr[i]=-1;
}
Node root=createBinaryTree(arr);
inorder(root);
int temp=first.val;
first.val=second.val;
second.val=temp;
printInorder(root);
}
}
To embed this program on your website, copy the following code and paste it into your website's HTML: