145. Binary Tree Postorder Traversal

思路

相当于preorder traversal的逆过程。

关键

  1. 逆过程1:巧用LinkedList的addFirst方法,先pop的节点实际上为输出中靠后的节点
  2. 逆过程2:新pop的节点既然在输出中更靠后,因此让right节点先pop,即先是left节点入栈,后是right节点入栈。
    ...
    while (!stack.empty()) {
      cur = stack.pop();
      rst.addFirst(cur.val);

      if (cur.left != null) stack.push(cur.left);
      if (cur.right != null) stack.push(cur.right);
    }
    ...

你可能感兴趣的:(145. Binary Tree Postorder Traversal)