leetcode145. 二叉树的后序遍历 意想不到的骚操作

举报
兔老大 发表于 2021/04/21 23:28:50 2021/04/21
【摘要】 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3]      1     \      2     /    3  输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? ...

给定一个二叉树,返回它的 后序 遍历。

示例:

输入: [1,null,2,3]  
   1
    \
     2
    /
   3 

输出: [3,2,1]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?

思路:前序遍历左右交换,然后倒序输出

原因:前序:中左右,

我们左右交换遍历:中右左

序列反过来:左右中=后序。

详情请看:二叉树遍历


  
  1. /**
  2. * Definition for a binary tree node.
  3. * public class TreeNode {
  4. * int val;
  5. * TreeNode left;
  6. * TreeNode right;
  7. * TreeNode(int x) { val = x; }
  8. * }
  9. */
  10. class Solution {
  11. public List<Integer> postorderTraversal(TreeNode root) {
  12. LinkedList<TreeNode> stack = new LinkedList<>();
  13. LinkedList<Integer> output = new LinkedList<>();
  14. if (root == null)return output;
  15. stack.add(root);
  16. while (!stack.isEmpty()) {
  17. TreeNode node = stack.pollLast();
  18. output.addFirst(node.val);
  19. if (node.left != null)stack.add(node.left);
  20. if (node.right != null)stack.add(node.right);
  21. }
  22. return output;
  23. }
  24. }

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/104126909

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。