欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-10 19:58:32
...

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

示例:

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

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

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

原因:前序:中左右,

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

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

详情请看:二叉树遍历

/**
 * 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<TreeNode> stack = new LinkedList<>();
    LinkedList<Integer> output = new LinkedList<>();
    if (root == null)return output;

    stack.add(root);
    while (!stack.isEmpty()) {
      TreeNode node = stack.pollLast();
      output.addFirst(node.val);
      if (node.left != null)stack.add(node.left);
      if (node.right != null)stack.add(node.right);
    }
    
    return output;
  }
}

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

相关标签: leetcode