private static void SetEncodingRecursive(Node Node, int EncodeBitsCount = 0, int EncodeBitsValue = 0)
{
if (Node == null) return;
Node.EncodeBitsCount = EncodeBitsCount;
Node.EncodeBitsValue = EncodeBitsValue;
SetEncodingRecursive(Node.LeftChild, EncodeBitsCount + 1, (EncodeBitsValue << 1) | 0);
SetEncodingRecursive(Node.RightChild, EncodeBitsCount + 1, (EncodeBitsValue << 1) | 1);
}