You are viewing a single comment's thread. Return to all comments →
Java 8:
class Node { int val; int height; Node left; Node right; public Node(int val, int height){ this.val = val; this.height = height; } public void swapLevel(int k){ if(k==height+1 || (height+1)%k==0){ Node temp = left; left = right; right = temp; } if(left!=null) left.swapLevel(k); if(right!=null) right.swapLevel(k); } } class Result { public static List<List<Integer>> swapNodes(List<List<Integer>> indexes, List<Integer> queries) { Node root = new Node(1, 0); Queue<Node> queue = new LinkedList<>(); queue.add(root); for (List<Integer> pair : indexes) { Node actual = queue.remove(); Node left = new Node(pair.get(0), actual.height+1); Node right = new Node(pair.get(1), actual.height+1); if(left.val!=-1){ actual.left = left; queue.add(left); } if(right.val!=-1){ actual.right = right; queue.add(right); } } List<List<Integer>> ans = new ArrayList<>(); for (Integer query : queries) { root.swapLevel(query); ans.add(traverseInOrder(root)); } return ans; } public static List<Integer> traverseInOrder(Node root){ List<Integer> traversedList = new LinkedList<>(); traverse(root, traversedList); return traversedList; } static void traverse(Node actual, List<Integer> traversedList){ if(actual==null) return; if(actual.left!= null) traverse(actual.left, traversedList); traversedList.add(actual.val); if(actual.right!= null) traverse(actual.right, traversedList); } }
Seems like cookies are disabled on this browser, please enable them to open this website
Swap Nodes [Algo]
You are viewing a single comment's thread. Return to all comments →
Java 8: