1. import java.util.Scanner;
    2. public class Main {
    3. public static class TreeNode{
    4. int val;
    5. TreeNode leftTreeNode;
    6. TreeNode rightTreeNode;
    7. public TreeNode(int n){
    8. this.val=n;
    9. }
    10. }
    11. public static void main(String[] args) {
    12. // Scanner input=new Scanner(System.in);
    13. // String str=input.next();
    14. System.out.println("hello world");
    15. TreeNode root=makeTree();
    16. int result=findParent(root, 8, 5);
    17. System.out.println(result);
    18. }
    19. public static int findParent(TreeNode root, int a, int b){
    20. if(root==null){
    21. return -1;
    22. }
    23. // find a or b
    24. if(root.val==a||root.val==b){
    25. return root.val==a?a:b;
    26. }
    27. int one=findParent(root.leftTreeNode, a, b);
    28. int two=findParent(root.rightTreeNode, a, b);
    29. // if left tree find a , right tree find b
    30. if((one==a&&two==b) || (one==b&&two==a)){
    31. return root.val;
    32. }else{
    33. // if find one
    34. }
    35. return -1;
    36. }
    37. public static TreeNode makeTree(){
    38. TreeNode node1=new TreeNode(1);
    39. TreeNode node2=new TreeNode(2);
    40. TreeNode node3=new TreeNode(3);
    41. TreeNode node4=new TreeNode(4);
    42. TreeNode node5=new TreeNode(5);
    43. TreeNode node6=new TreeNode(6);
    44. TreeNode node7=new TreeNode(7);
    45. TreeNode node8=new TreeNode(8);
    46. TreeNode node9=new TreeNode(9);
    47. node1.leftTreeNode=node2;
    48. node1.rightTreeNode=node3;
    49. node2.leftTreeNode=node4;
    50. node2.rightTreeNode=node5;
    51. node4.leftTreeNode=node8;
    52. node4.rightTreeNode=node9;
    53. node3.leftTreeNode=node6;
    54. node3.rightTreeNode=node7;
    55. return node1;
    56. }
    57. }