import java.util.Scanner;public class Main { public static class TreeNode{ int val; TreeNode leftTreeNode; TreeNode rightTreeNode; public TreeNode(int n){ this.val=n; } } public static void main(String[] args) { // Scanner input=new Scanner(System.in); // String str=input.next(); System.out.println("hello world"); TreeNode root=makeTree(); int result=findParent(root, 8, 5); System.out.println(result); } public static int findParent(TreeNode root, int a, int b){ if(root==null){ return -1; } // find a or b if(root.val==a||root.val==b){ return root.val==a?a:b; } int one=findParent(root.leftTreeNode, a, b); int two=findParent(root.rightTreeNode, a, b); // if left tree find a , right tree find b if((one==a&&two==b) || (one==b&&two==a)){ return root.val; }else{ // if find one } return -1; } public static TreeNode makeTree(){ TreeNode node1=new TreeNode(1); TreeNode node2=new TreeNode(2); TreeNode node3=new TreeNode(3); TreeNode node4=new TreeNode(4); TreeNode node5=new TreeNode(5); TreeNode node6=new TreeNode(6); TreeNode node7=new TreeNode(7); TreeNode node8=new TreeNode(8); TreeNode node9=new TreeNode(9); node1.leftTreeNode=node2; node1.rightTreeNode=node3; node2.leftTreeNode=node4; node2.rightTreeNode=node5; node4.leftTreeNode=node8; node4.rightTreeNode=node9; node3.leftTreeNode=node6; node3.rightTreeNode=node7; return node1; }}