从图片中没有看出绿色节点位置有问题呀?你期待放在哪里。demo 的话请提供在线的 demo,codepen.io 或者 codesandbox 都行
根据紧凑树的特性,我认为第三列的 绿色节点应该和白色节点紧挨者才对,
我觉得是应该空出来才合理诶,算法设计上就是会考虑到其他子树的高度然后放置同层的节点位置。
但是绿色节点现在并没有子树。紧凑树的布局规则应该是:两个节点的子树有相交,才会将这两个节点撑开。

你看,现在如果它有两个子节点,但这两颗树但子树与下面那颗树的间距还是很大。
我看了一下绝云大佬的代码,,看了下相关论文,觉得算法大概逻辑应该是这样:
算法一开始会给每一个叶子节点赋一个初始值

递归给父节点赋值

判断左右子树是否相交
就是左树的右侧 与 右树的左侧有没有相交,有相交的话就将这左右子树的间距加大。


我 fork 的这个 repo 可以很方便的复现这个场景,跑起来就能看到,在线的不太好整,还请理解哈, 感谢你的帮助!
git clone https://github.com/huyaocode/hierarchy.git
cd hierarchy
yarn
yarn start
我把这个优化加到 #2535 中哈
请问这个算法bug已经被解决了么
Most helpful comment
我把这个优化加到 #2535 中哈