递归的二叉链表遍历基于类自身函数的自我调用,而二叉链表的非递归操作,基于栈的入栈与弹栈。将中序遍历作为例子:指针访问到结点后,应先记住结点数值入栈,再往左边便利。假如指针为空,弹栈,最后将指针赋值给右子树指针
1. 建立浮标指针,指向根节点
2. 假如指针不是空,入栈数值,将指针更新为左子树指针
3. 当指针为空时,将栈顶元素赋值给新的变量,实现弹栈。
4. 将指针赋值给右子树指针
上述操作是循环,循环条件:指针不是空,或者栈不为空。
递归的二叉链表遍历基于类自身函数的自我调用,而二叉链表的非递归操作,基于栈的入栈与弹栈。将中序遍历作为例子:指针访问到结点后,应先记住结点数值入栈,再往左边便利。假如指针为空,弹栈,最后将指针赋值给右子树指针
1. 建立浮标指针,指向根节点
2. 假如指针不是空,入栈数值,将指针更新为左子树指针
3. 当指针为空时,将栈顶元素赋值给新的变量,实现弹栈。
4. 将指针赋值给右子树指针
上述操作是循环,循环条件:指针不是空,或者栈不为空。