GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — Java/Programs/BinaryTreeInorder.java at main · am-opensource-learner-void/Java Expand file tree/ Copy pathBinaryTreeInorder.javaMore file actions 122 lines (94 loc) · 3.13 KB / Copy pathBinaryTreeInorder.javaFile metadata and controls122 lines (94 loc) · 3.13 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 //Contributed by Dev jr - https://github.com/Dev-jr-8 class Solution { // Function to return a list containing the inorder traversal of the tree. ArrayList<Integer> inOrder(Node root) { //New ArrayList to return ArrayList<Integer> li = new ArrayList<Integer>(); travel(root, li); return li; } public static void travel(Node root, ArrayList<Integer> ans) { if(root==null) return; //if there is node on left, go there if(root.left!=null)travel(root.left,ans); //add the element to list ans.add(root.data); //if there is node on right, go there if(root.right!=null)travel(root.right,ans); } } //Time Complexity : o(n) //Space Complexity : o(n) //Driver Code to test the Above Class import java.util.LinkedList; import java.util.Queue; import java.io.*; import java.util.*; class Node { int data; Node left; Node right; Node(int data) { this.data = data; left = null; right = null; } } class GfG { static Node buildTree(String str) { if (str.length() == 0 || str.charAt(0) == 'N') { return null; } String ip[] = str.split(" "); // Create the root of the tree Node root = new Node(Integer.parseInt(ip[0])); // Push the root to the queue Queue<Node> queue = new LinkedList<>(); queue.add(root); // Starting from the second element int i = 1; while (queue.size() > 0 && i < ip.length) { // Get and remove the front of the queue Node currNode = queue.peek(); queue.remove(); // Get the current node's value from the string String currVal = ip[i]; // If the left child is not null if (!currVal.equals("N")) { // Create the left child for the current node currNode.left = new Node(Integer.parseInt(currVal)); // Push it to the queue queue.add(currNode.left); } // For the right child i++; if (i >= ip.length) break; currVal = ip[i]; // If the right child is not null if (!currVal.equals("N")) { // Create the right child for the current node currNode.right = new Node(Integer.parseInt(currVal)); // Push it to the queue queue.add(currNode.right); } i++; } return root; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine()); while (t > 0) { String s = br.readLine(); Node root = buildTree(s); Solution g = new Solution(); ArrayList<Integer> res = g.inOrder(root); for (int i = 0; i < res.size(); i++) System.out.print(res.get(i) + " "); System.out.print("\n"); t--; } } } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |