我正在尝试实现一个自下而上的递归展开树。我递归到需要展开的节点,并找到该节点的父节点和祖父节点。然后我就可以根据情况选择之字形或之字形。问题是完成此操作后,我将已展开一次的节点返回到先前的递归调用。先前的递归调用引用了该节点的父节点,该节点现在是该节点的子节点。如何在向上递归时展开节点?
如果我没记错的话,当您递归到目标节点时,您会构建一棵左树和右树。当找到目标时,使用目标的(原始)子节点构建最终的左树和右树,将生成的树附加为目标的新子节点,并以尾递归方式返回结果(即,所有方式备份堆栈而无需进一步修改)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)