LeetCode:非递归实现二叉树后序遍历

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 20:55   834   0

后序遍历二叉树:

思路:借助栈

public static void postOrderTraverse(TreeNode1 root) {
Stack<TreeNode1> stack = new Stack<>();
TreeNode1 cur = null, pre = null; //栈中当前节点与栈中已出栈的上一个节点
stack.push(root);

while(!stack.empty()) {
cur = stack.peek();

if((cur.left == null && cur.right == null) || (pre != null && (pre == cur.left || pre == cur.right)) ) {
l.add(cur.val);
stack.pop();
pre = cur;
}else {
if(cur.right != null)
stack.push(cur.right);
if(cur.left != null)
stack.push(cur.left);
}
}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP