private static void determineHuffmanCodesOfLeafNodes(HuffmanNode node, BitArray shortestBinaryCode) { const bool Zero = false; const bool One = true; if (node.IsLeaf) { node.HuffmanCode = shortestBinaryCode; return; } determineHuffmanCodesOfLeafNodes(node.Left, shortestBinaryCode.WithAppendedValue(Zero)); determineHuffmanCodesOfLeafNodes(node.Right, shortestBinaryCode.WithAppendedValue(One)); }