@@ -169,21 +169,10 @@ <h2 id="returns">Returns</h2>
169169 for i, index in enumerate(valueIndexes):
170170 mat[level][index] = [center("/", unitSize=unitSize, fillChar=" "), center("\\", unitSize=unitSize, fillChar=" ")][i % 2]
171171
172- # Fill gaps between pairs on the even level below (level + 1)
173- for i in range(0, len(valueIndexes), 2):
174- if i + 1 < len(valueIndexes):
175- # Calculate parent position (should not be overwritten)
176- parent_col = (valueIndexes[i] + valueIndexes[i + 1]) // 2
177- # Fill columns between valueIndexes[i] and valueIndexes[i+1], except parent
178- for col in range(valueIndexes[i] + 1, valueIndexes[i + 1]):
179- if col != parent_col:
180- mat[level + 1][col] = center("", unitSize=unitSize, fillChar=gapFillChar)
181-
182172 # Calculate parent positions (midpoints between child pairs)
183173 next = []
184174 for i in range(0, len(valueIndexes) - 1, 2):
185175 next.append((valueIndexes[i] + valueIndexes[i + 1]) // 2)
186- prev = valueIndexes
187176 valueIndexes = next
188177 continue
189178
@@ -195,6 +184,20 @@ <h2 id="returns">Returns</h2>
195184 for i, index in enumerate(valueIndexes):
196185 if codes[i] in tree:
197186 mat[level][index] = tree[codes[i]]
187+
188+ # Fill gaps between pairs using prev (previous even level's valueIndexes)
189+ if prev is not None:
190+ for i in range(0, len(prev), 2):
191+ if i + 1 < len(prev):
192+ # Calculate parent position (should not be overwritten)
193+ parent_col = (prev[i] + prev[i + 1]) // 2
194+ # Fill columns between prev[i] and prev[i+1], except parent
195+ for col in range(prev[i] + 1, prev[i + 1]):
196+ if col != parent_col:
197+ mat[level][col] = center("", unitSize=unitSize, fillChar=gapFillChar)
198+
199+ # Save current valueIndexes for next even level
200+ prev = valueIndexes
198201
199202 # Remove empty leading columns if requested
200203 if removeEmpty:
0 commit comments