712710. Binary Tree Representation

Easy

Binary Tree Representation

Summary

The problem is about representing a binary tree, which is a data structure composed of nodes where each node has at most two children (i.e., left child and right child). The goal is to create a binary tree representation using an array or linked list. This involves deciding how to store the tree's nodes in memory.

Detailed Explanation

To represent a binary tree, we can use an array-based approach. Each element in the array represents a node in the tree, with the index corresponding to the node's value. For example, if the array [1, 2, 3, 4, 5] represents a binary tree, the root node has a value of 1, its left child has a value of 2, and its right child has a value of 3.

Here's a step-by-step breakdown of how to create a binary tree representation using an array:

  • Initialize an empty array arr with a size equal to the number of nodes in the tree.
  • Iterate through each node in the tree, assigning its value to the corresponding index in the array. For example, if the root node has a value of 1, assign it to the first element in the array (arr[0] = 1).
  • Traverse the left and right subtrees recursively, updating the indices accordingly.

Here's an ASCII art diagram illustrating this process:

1

/
2 3 / \
4 5

In this example, we can store the binary tree in an array as follows: [1, 2, 4, 3, 5]. The root node has a value of 1, its left child has a value of 2, and its right child has a value of 3.

Time complexity for this approach is O(n), where n is the number of nodes in the tree. Space complexity is also O(n) since we need to store each node's value in memory.

Optimized Solutions

Here are optimized solutions in different programming languages:

Java

View on GeeksforGeeks
public class BinaryTree {
    public static void main(String[] args) {
        int[] arr = {1, 2, 4, 3, 5};
        binaryTreeRepresentation(arr);
    }

    public static void binaryTreeRepresentation(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

DevExCode

Master coding interviews with Leetcode, system design, TechBit, QuickLearn, DevTips, Tech Battles, and career services.

© 2026 DevExCode. All rights reserved.