用 Flex 整理了一个横向二叉树的需求,形状就如上图所示
是一个二叉树的结构,可怎么画出来却费了很多脑筋
最后确认的思路就是:从右往左,从上到下顺序遍历节点,然后由全局的变量保持横向节点的x坐标,和纵向节点的y坐标
首先遍历右节点,存在右节点的子右节点则进栈,不存在子右节点的话 将当前节点出栈,
遍历刚出栈的节点的左节点,在其中继续遍历右节点,如此反复,终于画了出来。
注:先出栈在遍历其左节点!
核心代码如下
用 Flex 整理了一个横向二叉树的需求,形状就如上图所示
是一个二叉树的结构,可怎么画出来却费了很多脑筋
最后确认的思路就是:从右往左,从上到下顺序遍历节点,然后由全局的变量保持横向节点的x坐标,和纵向节点的y坐标
首先遍历右节点,存在右节点的子右节点则进栈,不存在子右节点的话 将当前节点出栈,
遍历刚出栈的节点的左节点,在其中继续遍历右节点,如此反复,终于画了出来。
注:先出栈在遍历其左节点!
核心代码如下