Bird
Raised Fist0
DSA Javaprogramming~15 mins

Binary Tree Node Structure in DSA Java - Build from Scratch

Choose your learning style10 modes available
Binary Tree Node Structure
📖 Scenario: Imagine you are building a simple family tree app. Each person can have up to two children. To start, you need to create the basic building block: a node that holds a person's name and links to their children.
🎯 Goal: Build a Java class called TreeNode that represents a node in a binary tree. Each node should store a String called name and have two child nodes called left and right.
📋 What You'll Learn
Create a class named TreeNode
Add a String variable called name to store the person's name
Add two TreeNode variables called left and right for the children
Create a constructor that takes a String parameter to set the name
Initialize left and right to null in the constructor
💡 Why This Matters
🌍 Real World
Binary trees are used in many apps like family trees, decision trees, and organizing data hierarchically.
💼 Career
Understanding how to create and use tree nodes is essential for software developers working with data structures and algorithms.
Progress0 / 4 steps
1
Create the TreeNode class with name variable
Create a public class called TreeNode with a public String variable named name.
DSA Java
Hint

Start by writing public class TreeNode { and inside it declare public String name;

2
Add left and right child nodes
Inside the TreeNode class, add two public variables of type TreeNode named left and right.
DSA Java
Hint

Declare public TreeNode left; and public TreeNode right; inside the class.

3
Create constructor to set name and initialize children
Add a public constructor to TreeNode that takes a String parameter called name. Inside the constructor, set the class variable name to the parameter and initialize left and right to null.
DSA Java
Hint

Write a constructor public TreeNode(String name) and inside set this.name = name; and this.left = null; and this.right = null;.

4
Print the TreeNode name
Create a main method in a public class called Main. Inside main, create a TreeNode object named root with the name "Grandparent". Then print the name of root using System.out.println.
DSA Java
Hint

Write a Main class with main method. Create TreeNode root = new TreeNode("Grandparent"); and print root.name.

Practice

(1/5)
1. What is the primary purpose of a TreeNode class in a binary tree?
easy
A. To perform tree traversal operations
B. To store only the root node of the tree
C. To store a value and references to left and right child nodes
D. To balance the binary tree automatically

Solution

  1. Step 1: Understand the role of a node in a binary tree

    A node holds data and links to its children, enabling tree structure.
  2. Step 2: Identify what the TreeNode class stores

    It stores a value and references (pointers) to left and right child nodes.
  3. Final Answer:

    To store a value and references to left and right child nodes -> Option C
  4. Quick Check:

    Node = value + left + right [OK]
Hint: Nodes hold data and links to children [OK]
Common Mistakes:
  • Thinking TreeNode stores the whole tree
  • Confusing node with traversal logic
  • Assuming TreeNode balances the tree
2. Which of the following is the correct Java syntax to define a binary tree node class with integer data?
easy
A. class TreeNode { int data; TreeNode left; TreeNode right; }
B. class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int val) { data = val; } }
C. class TreeNode { int data; TreeNode left; TreeNode right; void TreeNode() {} }
D. class TreeNode { int data; TreeNode left, right; }

Solution

  1. Step 1: Check class field declarations

    Fields for data, left, and right nodes must be declared properly.
  2. Step 2: Verify constructor syntax

    Constructor should initialize data; class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int val) { data = val; } } correctly defines constructor.
  3. Final Answer:

    class TreeNode { int data; TreeNode left; TreeNode right; TreeNode(int val) { data = val; } } -> Option B
  4. Quick Check:

    Constructor initializes data correctly [OK]
Hint: Constructor must initialize data field [OK]
Common Mistakes:
  • Missing constructor to set data
  • Incorrect constructor syntax (void TreeNode())
  • Declaring multiple variables incorrectly
3. Given the following code, what will be printed?
class TreeNode {
  int data;
  TreeNode left, right;
  TreeNode(int val) { data = val; }
}

public class Main {
  public static void main(String[] args) {
    TreeNode root = new TreeNode(10);
    root.left = new TreeNode(5);
    root.right = new TreeNode(15);
    System.out.println(root.left.data + "," + root.right.data);
  }
}
medium
A. 5,15
B. 10,5
C. 15,5
D. 10,15

Solution

  1. Step 1: Create root node with data 10

    Root node data is 10, left and right are null initially.
  2. Step 2: Assign left and right children with data 5 and 15

    root.left.data = 5, root.right.data = 15.
  3. Step 3: Print left and right data

    Output is "5,15" from root.left.data and root.right.data.
  4. Final Answer:

    5,15 -> Option A
  5. Quick Check:

    Left=5, Right=15 [OK]
Hint: Print left and right node data directly [OK]
Common Mistakes:
  • Printing root data instead of children
  • Swapping left and right values
  • Confusing node references
4. Identify the error in the following TreeNode class code:
class TreeNode {
  int data;
  TreeNode left, right;
  void TreeNode(int val) {
    data = val;
  }
}
medium
A. Constructor has void return type, so it's a method not a constructor
B. Missing semicolon after data declaration
C. left and right should be arrays, not single nodes
D. Class name and constructor name do not match

Solution

  1. Step 1: Check constructor syntax

    Constructor should not have a return type; 'void' makes it a method.
  2. Step 2: Confirm class and constructor names match

    Names match, so no error there.
  3. Final Answer:

    Constructor has void return type, so it's a method not a constructor -> Option A
  4. Quick Check:

    Constructor no return type [OK]
Hint: Constructor must not have a return type [OK]
Common Mistakes:
  • Adding void before constructor name
  • Confusing methods with constructors
  • Thinking left/right must be arrays
5. You want to create a binary tree node class that also stores a parent node reference. Which of the following class definitions correctly adds this feature?
hard
A. class TreeNode { int data; TreeNode left, right, parent; TreeNode(int val) { data = val; } }
B. class TreeNode { int data; TreeNode left, right; TreeNode parent; TreeNode(int val) { data = val; parent = null; } }
C. class TreeNode { int data; TreeNode left, right; TreeNode parent; TreeNode(int val) { data = val; left = right = parent = null; } }
D. class TreeNode { int data; TreeNode left, right; TreeNode parent; TreeNode(int val, TreeNode p) { data = val; parent = p; } }

Solution

  1. Step 1: Understand the need for parent reference initialization

    Parent reference should be set when node is created to link properly.
  2. Step 2: Check constructor parameters and assignments

    class TreeNode { int data; TreeNode left, right; TreeNode parent; TreeNode(int val, TreeNode p) { data = val; parent = p; } } passes parent node as parameter and assigns it correctly.
  3. Final Answer:

    class TreeNode { int data; TreeNode left, right; TreeNode parent; TreeNode(int val, TreeNode p) { data = val; parent = p; } } -> Option D
  4. Quick Check:

    Parent passed and assigned in constructor [OK]
Hint: Pass parent node in constructor to set reference [OK]
Common Mistakes:
  • Not initializing parent reference
  • Setting parent to null always
  • Declaring parent but never assigning
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard