关于删除二叉树节点的非递归算法思想?解决思路

关于删除二叉树节点的非递归算法思想?
怎么用非递归的方式删除二叉树中值为val的节点,请给出思想即可   谢谢

------解决方案--------------------
删除节点

先找到该节点
然后判断3种情况...
1:叶子
2:有2个根节点
3:有1个根节点
------解决方案--------------------
非递归的方式寻找值为val的结点,可以用栈来实现,假如要中序遍历,则根结点先进栈,然后左结点进栈,而右结点再根结点出栈后进栈。至于删除这个结点,按照楼上说的,那本清华版的《数据结构》也讲的挺清楚的。
------解决方案--------------------
如果值为 "val "的结点不是叶子,删除了这个结点后,它的子树(subtree)怎么办?题目中并没有指明这个二叉树的类型(BST, Full, Complete).
------解决方案--------------------
所以就需要说明这个二叉树的具体类型了啊,你题意说的不清,如果是要删除元素,我猜想你哪个二叉树应该是二叉排序树(BST),好像再数据结构中的动态查找中讨论过这个问题。