static IEnumerable <CodePair> GetLeaves(Node node, string currentString)
 {
     if (node.IsLeaf())
     {
         yield return(new CodePair()
         {
             ch = node.ch,
             code = currentString
         });
     }
     else
     {
         foreach (var leaf in GetLeaves(node.left, currentString + "0"))
         {
             yield return(leaf);
         }
         foreach (var leaf in GetLeaves(node.right, currentString + "1"))
         {
             yield return(leaf);
         }
     }
 }