给定一个二叉树,返回它的 后序 遍历。
题目:给定一个二叉树,返回它的 后序 遍历。
解法:迭代
思路:利用栈实现中右左,再翻转成左右中
代码:
/**
- Definition for a binary tree node.
- public class TreeNode {
- int val;
- TreeNode left;
- TreeNode right;
- TreeNode() {}
- TreeNode(int val)
- TreeNode(int val, TreeNode left, TreeNode right) {
- this.val = val;
- this.left = left;
- this.right = right;
- }
- }
*/
class Solution {
public ListpostorderTraversal(TreeNode root) {
LinkedListres = new LinkedList ();
Stackstack = new Stack ();
if(root==null){
return res;
}
stack.push(root);
while(!stack.isEmpty()){
TreeNode popNode = stack.pop();
res.addFirst(popNode.val);
if(popNode.left!=null){
stack.push(popNode.left);
}
if(popNode.right!=null){
stack.push(popNode.right);
}
}
return res;
}
}

浙公网安备 33010602011771号