Binary Tree Postorder Traversal
来源:互联网 发布:mac定制水漾轻盈粉底 编辑:程序博客网 时间:2024/05/17 03:18
Given a binary tree, return the postorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [3,2,1]
.
解法:用栈来做,先将父节点入栈,再将右孩子入栈,左孩子入栈,同时在回溯的时候,即出栈后,要保存之前访问的孩子节点pre,否则会重复
将孩子节点入栈。
public class Solution { public static List<Integer> postorderTraversal(TreeNode root){List<Integer> result = new ArrayList<Integer>();if(root == null) return result; Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode l = root, pre = null; stack.push(l); while(!stack.empty()) { l = stack.peek(); if((l.left == null && l.right == null) || (pre != null && (pre == l.left || pre == l.right))) { result.add(l.val); stack.pop(); pre = l; } else { if(l.right != null) stack.push(l.right); if(l.left != null) stack.push(l.left); } } return result;}}
0 0
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Binary Tree Postorder Traversal
- Java网络编程从入门到精通(20):HTTP协议简介
- 安装MySQL5.5时,到了start service没反应,解决方案
- 如何寻找“幽默数”
- 如何用sqlyog链接liunx的mysql数据库
- Android之接收和发送短信
- Binary Tree Postorder Traversal
- git常用命令
- GB 18030
- 第六章 电磁新理论
- Linux中大括号扩展参数的使用方法
- js数组的sort排序详解
- 解决MFC中CListCtrl(virtual)控件闪烁问题
- 什么是“Digital Roots"?
- linux下安装java环境