Recall & Review
beginner
What is the inorder predecessor in a Binary Search Tree (BST)?
The inorder predecessor of a node in a BST is the node that comes immediately before it in the inorder traversal. It is the largest node smaller than the given node.
Click to reveal answer
beginner
How do you find the inorder predecessor if the node has a left subtree?
If the node has a left subtree, the inorder predecessor is the rightmost (maximum) node in that left subtree.
Click to reveal answer
intermediate
What if the node does not have a left subtree? How to find its inorder predecessor?
If the node has no left subtree, move up the tree using parent pointers until you find a node which is the right child of its parent. That parent is the inorder predecessor.
Click to reveal answer
intermediate
Why is the inorder predecessor important in BST operations?
It helps in operations like deletion of a node by replacing the node with its inorder predecessor to maintain BST properties.
Click to reveal answer
beginner
In Go, what is a simple approach to find the inorder predecessor of a node in a BST?
Traverse to the left child, then keep moving to the right child until no more right child exists. That node is the inorder predecessor.
Click to reveal answer
What is the inorder predecessor of the smallest node in a BST?
✗ Incorrect
The smallest node has no node smaller than it, so no inorder predecessor.
If a node has a left subtree, where do you look for its inorder predecessor?
✗ Incorrect
The inorder predecessor is the largest node smaller than the current node, found as the rightmost node in the left subtree.
If a node has no left subtree, how do you find its inorder predecessor?
✗ Incorrect
You move up until you find a node that is a right child of its parent; that parent is the inorder predecessor.
Why is the inorder predecessor useful when deleting a node in BST?
✗ Incorrect
Replacing the deleted node with its inorder predecessor maintains the BST property.
In Go, which loop helps find the inorder predecessor in the left subtree?
✗ Incorrect
You move right repeatedly in the left subtree to find the maximum node, which is the inorder predecessor.
Explain how to find the inorder predecessor of a node in a BST with and without a left subtree.
Think about the inorder traversal order and how nodes relate.
You got /3 concepts.
Describe why the inorder predecessor is important in BST node deletion.
Consider what happens when you remove a node with two children.
You got /3 concepts.