maxximus
BAN USERimport java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 16-02-2017.
*/
public class Amazon1 {
public static void main(String[] args){
List<String> l1 = new ArrayList<String>();
List<String> l2 = new ArrayList<String>();
List<String> l3 = new ArrayList<String>();
l1.add("aaa");
l1.add("bbb");
l1.add("ddd");
l1.add("xyxz");
l2.add("bbb");
l2.add("ccc");
l2.add("ccc");
l2.add("hkp");
l3.add("ddd");
l3.add("eee");
l3.add("fff");
l3.add("lmn");
int x=0,y=0,z=0;
while (x<l1.size() || y<l2.size() || z<l3.size()){
if(x< l1.size() && y<l2.size() && (l1.get(x) == l2.get(y)) &&
(l2.get(y)== l3.get(z))){
x++;
y++;
z++;
}
if(x<l1.size() && y < l2.size() && (l1.get(x) == l2.get(y))){
y++;
x++;
}else if(y<l2.size() && z<l3.size() && l2.get(y) == l3.get(z)){
y++;
z++;
}else if(x<l1.size() && z<l3.size() && l1.get(x) == l3.get(z)){
z++;
x++;
}else{
int r =1;
if(x<l1.size() && y<l2.size()){
r = l1.get(x).compareTo(l2.get(y));
}
if(r<1){
if(z<l3.size() && x<l1.size() && l3.get(z).compareTo(l1.get(x)) < 0){
System.out.print(l3.get(z)+" ");
z++;
}else{
System.out.print(l1.get(x)+" ");
x++;
}
}else{
if(y<l2.size() && l2.get(y).compareTo(l3.get(z)) < 0){
System.out.print(l2.get(y)+" ");
y++;
}else if(z<l3.size()){
System.out.print(l3.get(z)+" ");
z++;
}
}
}
}
}
}
Can be done using PreOrder Traversal as shown below. capture the immediate ancestor when function stack is unwinding after having found the key
- maxximus February 17, 2017