BinaryTree: depth-first traverse
BinaryTree: depth-first traverse optimize