首页 > 其他 > 详细

**LeetCode-145二叉树后序遍历

时间:2019-10-15 14:43:59      阅读:92      评论:0      收藏:0      [点我收藏+]

问题:

后序遍历二叉树

分析:非递归后序遍历二叉树。直接后序遍历的话会很麻烦,所以我们要想一些精妙的方法,将后序遍历改成先序遍历并满足以下两个条件即可。

1.使用链表头插法来进行先序遍历。

2.先遍历右子树再遍历左子树即可(借助栈实现,先将左节点压栈,再将右节点压栈)。

代码:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
LinkedList<Integer> output = new LinkedList();
if(root==null){
return output;
}
Stack s = new Stack();
TreeNode node;
s.push(root);
while(!s.empty()){            //注意记忆循环条件
node = (TreeNode)s.pop();
output.addFirst(node.val);
if(node.left!=null){
s.push(node.left);
}
if(node.right!=null){
s.push(node.right);
}
}
return output;
}
}

**LeetCode-145二叉树后序遍历

原文:https://www.cnblogs.com/gmzqjn/p/11677138.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!