bool isSubtree(node1, node2): if node1 == null: throw if node2 == null: return true return isSubtreeInner(node1, node2) bool isSubtreeInner(node1, node2): if node1 == null: return false if areEqual(node1, node2): return true return isSubtreeInner(node1.left, node2) || isSubtreeInner(node1.right, node2) bool areEqual(node1, node2): if node1 == null && node2 == null: return true if node1 == null || node2 == null: return false return node1.value == node2.value && areEqual(node1.left, node2.left) && areEqual(node1.right, node2.right)
[Hat tip to ctci]
No comments:
Post a Comment