In lectures/20-trees/code/introduction/BinaryTree.java, the traversal methods for inOrder() and postOrder() appear to contain copy-paste mistakes.
Problem
Both traversal helpers call preOrder(...) instead of their own traversal method:
inOrder(Node node) calls preOrder(node.left) and preOrder(node.right)
postOrder(Node node) calls preOrder(node.left) and preOrder(node.right)
Also, the public wrapper methods currently call preOrder(root) instead of the matching helper methods.
Expected behavior
inOrder() should call inOrder(root)
postOrder() should call postOrder(root)
inOrder(Node node) should recursively call inOrder(...)
postOrder(Node node) should recursively call postOrder(...)
Suggested fix
public void inOrder() {
inOrder(root);
}
private void inOrder(Node node) {
if (node == null) {
return;
}
inOrder(node.left);
System.out.print(node.value + " ");
inOrder(node.right);
}
public void postOrder() {
postOrder(root);
}
private void postOrder(Node node) {
if (node == null) {
return;
}
postOrder(node.left);
postOrder(node.right);
System.out.print(node.value + " ");
}
In
lectures/20-trees/code/introduction/BinaryTree.java, the traversal methods forinOrder()andpostOrder()appear to contain copy-paste mistakes.Problem
Both traversal helpers call
preOrder(...)instead of their own traversal method:inOrder(Node node)callspreOrder(node.left)andpreOrder(node.right)postOrder(Node node)callspreOrder(node.left)andpreOrder(node.right)Also, the public wrapper methods currently call
preOrder(root)instead of the matching helper methods.Expected behavior
inOrder()should callinOrder(root)postOrder()should callpostOrder(root)inOrder(Node node)should recursively callinOrder(...)postOrder(Node node)should recursively callpostOrder(...)Suggested fix