145.Binary Tree Postorder Traversal
来源:互联网 发布:温州网络瘫痪 编辑:程序博客网 时间:2024/04/30 07:49
题目链接:binary-tree-postorder-traversal
import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * Given a binary tree, return the postorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [3,2,1].Note: Recursive solution is trivial, could you do it iteratively?confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.OJ's Binary Tree Serialization:The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.Here's an example: 1 / \ 2 3 / 4 \ 5The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}". * */public class BinaryTreePostorderTraversal {public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}//67 / 67 test cases passed.//Status: Accepted//Runtime: 202 ms//Submitted: 0 minutes ago//简单的后序遍历//递归版 public List<Integer> postorderTraversal(TreeNode root) { List<Integer> postorder= new ArrayList<Integer>(); postorderTraversal(root, postorder); return postorder; } public void postorderTraversal(TreeNode root, List<Integer> postorder) { if (root != null) { postorderTraversal(root.left, postorder); postorderTraversal(root.right, postorder); postorder.add(root.val); } } // 67 / 67 test cases passed.// Status: Accepted// Runtime: 200 ms// Submitted: 1 minute ago //遍历版 public List<Integer> postorderTraversal1(TreeNode root) { List<Integer> postorder= new ArrayList<Integer>(); Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode p = root; TreeNode q; do { while(p != null) { stack.push(p); p = p.left; } q = null; while(!stack.isEmpty()) { p = stack.pop(); if (p.right == q) {postorder.add(p.val);q = p;} else {stack.push(p);p = p.right;break;} } } while(!stack.isEmpty()); return postorder; } public static void main(String[] args) {// TODO Auto-generated method stub}}
0 0
- 145.Binary Tree Postorder Traversal
- 145.Binary Tree Postorder Traversal
- 145.Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- 145. Binary Tree Postorder Traversal
- T_S_SQL_DEBUG_LOG
- 使用 HTML5 WebSocket 构建实时 Web 应用
- 每日一得--spring的bean销毁方法destroy-method="destory"为何不执行
- 用openssl对文件加密及解密
- Android中的Selector的用法
- 145.Binary Tree Postorder Traversal
- 如何选择适合自己的编程语言
- SDOI2008 仪仗队
- 策略模式
- 文章标题
- 批量下载图片文件(服务器端 和 客户端)
- c _alloca 函数的实现
- SDOI2009 晨跑
- delphi 2010 Cannot create file EditorLineEnds.ttr