A binary tree node is a basic unit of a binary tree that contains data and references to two child nodes: left and right.
Click to reveal answer
beginner
What are the main parts of a binary tree node?
A binary tree node has three main parts: 1. Data (value stored) 2. Left child reference 3. Right child reference
Click to reveal answer
beginner
Show a simple Python class for a binary tree node.
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
Click to reveal answer
beginner
Why do binary tree nodes have left and right references?
Because each node can have up to two children, left and right, to form the binary tree structure.
Click to reveal answer
beginner
What does it mean if a binary tree node's left or right reference is None?
It means that the node does not have a child on that side (left or right). It is a leaf or partial node.
Click to reveal answer
What does a binary tree node typically contain?
AData only
BData, next node, previous node
CData, left child, right child
DLeft child, right child only
✗ Incorrect
A binary tree node contains data and references to left and right child nodes.
In a binary tree node, what does 'None' for left or right child mean?
ANo child node on that side
BThe node is the root
CThe child node exists
DThe node has two children
✗ Incorrect
None means there is no child node on that side.
Which of these is NOT part of a binary tree node?
AData
BLeft child reference
CRight child reference
DParent reference
✗ Incorrect
A basic binary tree node does not usually have a parent reference.
How many children can a binary tree node have at most?
A1
B2
C3
DUnlimited
✗ Incorrect
A binary tree node can have up to two children: left and right.
What is the role of the left and right references in a binary tree node?
ATo point to child nodes
BTo store data
CTo point to parent nodes
DTo count children
✗ Incorrect
Left and right references point to the node's child nodes.
Describe the structure of a binary tree node and its components.
Think about what each node stores and how it connects to others.
You got /4 concepts.
Explain why binary tree nodes have left and right references instead of just one.
Consider how a binary tree grows and branches.
You got /4 concepts.
Practice
(1/5)
1. What does a typical binary tree node contain in its structure?
easy
A. A value and a reference to the parent node only
B. Only a value and a reference to the next node
C. A value, a reference to the left child, and a reference to the right child
D. A value and a list of all children nodes
Solution
Step 1: Understand binary tree node components
A binary tree node typically stores a value and has two child references: left and right.
Step 2: Compare options with definition
A value, a reference to the left child, and a reference to the right child matches this structure exactly, while others describe different data structures.
Final Answer:
A value, a reference to the left child, and a reference to the right child -> Option C
Quick Check:
Binary tree node = value + left + right [OK]
Hint: Binary tree nodes always have left and right child pointers [OK]
Common Mistakes:
Confusing binary tree node with linked list node
Thinking nodes have parent pointers by default
Assuming children are stored in a list
2. Which of the following is the correct Python syntax to define a binary tree node class with attributes val, left, and right?
easy
A. class Node:
def __init__(self, val):
val = self
left = None
right = None
B. class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
C. class Node:
def __init__(self):
self.val = None
self.left = None
self.right = None
D. class Node:
def __init__(self, val, left, right):
self.val = val
self.left = left
self.right = right
Solution
Step 1: Check constructor parameters and attribute assignments
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None correctly initializes val and sets left and right to None by default.
Step 2: Validate syntax correctness
class Node:
def __init__(self, val):
val = self
left = None
right = None incorrectly assigns variables; class Node:
def __init__(self):
self.val = None
self.left = None
self.right = None misses val parameter; class Node:
def __init__(self, val, left, right):
self.val = val
self.left = left
self.right = right requires left and right on init which is less common.
Final Answer:
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None -> Option B
Quick Check:
Constructor sets val and initializes children to None [OK]
Hint: Init val, set left and right to None inside __init__ [OK]
Common Mistakes:
Not using self to assign attributes
Forgetting to initialize left and right
Incorrect parameter order or missing parameters
3. What will be the output of the following code snippet?
Root node has value 10; left child is assigned a node with value 5; right child assigned node with value 15.
Step 2: Print left and right child values
Printing root.left.val and root.right.val outputs 5 and 15 respectively.
Final Answer:
5 15 -> Option D
Quick Check:
Left child val = 5, Right child val = 15 [OK]
Hint: Print left.val and right.val after assignment to get child values [OK]
Common Mistakes:
Printing root.val instead of children
Confusing left and right child values
Assuming children are None without assignment
4. Identify the error in the following binary tree node class definition:
class Node:
def __init__(self, val):
val = self.val
left = None
right = None
medium
A. Attributes are assigned incorrectly; should use self.val, self.left, self.right
B. Missing return statement in __init__ method
C. Class name should be lowercase
D. No error; code is correct
Solution
Step 1: Review attribute assignments in __init__
Attributes must be assigned to self to belong to the instance, e.g., self.val = val.
Step 2: Identify incorrect assignments
Code assigns val = self.val which reverses assignment and does not use self for left and right.
Final Answer:
Attributes must be assigned using self, not local variables -> Option A
Quick Check:
Use self.attr = value to set instance variables [OK]
Hint: Always assign attributes with self.attribute = value [OK]
Common Mistakes:
Assigning variables without self prefix
Reversing assignment order
Expecting return in __init__
5. Given the following binary tree node class, how would you create a tree with root value 1, left child 2, and right child 3, then print the root and its children values?
class Node:
def __init__(self, val):
self.val = val
self.left = None
self.right = None