Untitled
class Solution { public TreeNode createBinaryTree(int[][] descriptions) { Map<Integer, TreeNode> mp = new HashMap<>(); Set<Integer> childSet = new HashSet<>(); // Create nodes and set up parent-child relationships for (int[] description : descriptions) { int parent = description[0]; int child = description[1]; boolean isLeft = description[2] == 1; mp.putIfAbsent(parent, new TreeNode(parent)); mp.putIfAbsent(child, new TreeNode(child)); if (isLeft) { mp.get(parent).left = mp.get(child); } else { mp.get(parent).right = mp.get(child); } childSet.add(child); } // Find the root node (which is not any child) for (int[] description : descriptions) { int parent = description[0]; if (!childSet.contains(parent)) { return mp.get(parent); } } return null; }
Leave a Comment