@@ -179,17 +179,11 @@ def nodeToMat(node: BinaryNode, depth=-1, valueFillChar=None, gapFillChar=None,
179179 for i , index in enumerate (valueIndexes ):
180180 mat [level ][index ] = [center ("/" , unitSize = unitSize , fillChar = " " ), center ("\\ " , unitSize = unitSize , fillChar = " " )][i % 2 ]
181181
182- # Fill gaps between each pair with gapFillChar
183- for i in range (0 , len (valueIndexes ), 2 ):
184- if i + 1 < len (valueIndexes ):
185- # Fill columns between valueIndexes[i] and valueIndexes[i+1]
186- for col in range (valueIndexes [i ] + 1 , valueIndexes [i + 1 ]):
187- mat [level ][col ] = center ("" , unitSize = unitSize , fillChar = gapFillChar )
188-
189182 # Calculate parent positions (midpoints between child pairs)
190183 next = []
191184 for i in range (0 , len (valueIndexes ) - 1 , 2 ):
192185 next .append ((valueIndexes [i ] + valueIndexes [i + 1 ]) // 2 )
186+ prev = valueIndexes
193187 valueIndexes = next
194188 continue
195189
@@ -201,6 +195,14 @@ def nodeToMat(node: BinaryNode, depth=-1, valueFillChar=None, gapFillChar=None,
201195 for i , index in enumerate (valueIndexes ):
202196 if codes [i ] in tree :
203197 mat [level ][index ] = tree [codes [i ]]
198+
199+ # Fill gaps between pairs using prev (previous level's valueIndexes)
200+ if prev is not None :
201+ for i in range (0 , len (prev ), 2 ):
202+ if i + 1 < len (prev ):
203+ # Fill columns between prev[i] and prev[i+1]
204+ for col in range (prev [i ] + 1 , prev [i + 1 ]):
205+ mat [level ][col ] = center ("" , unitSize = unitSize , fillChar = gapFillChar )
204206
205207 # Remove empty leading columns if requested
206208 if removeEmpty :
0 commit comments