private void Visit(TreeNode node, Walker walker)
        {
            if (node == null)
            {
                return;
            }

            Visit(node.left, walker);
            walker.Append(node);
            Visit(node.right, walker);
        }