给定一个二叉树,返回它的 后序 遍历。
题目:给定一个二叉树,返回它的 后序 遍历。
解法:迭代
思路:利用栈实现中右左,再翻转成左右中
代码:
/**
- Definition for a binary tree node.
- public class TreeNode {
-
int val; -
TreeNode left; -
TreeNode right; -
TreeNode() {} -
TreeNode(int val) { this.val = 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号