标签:[] null blog roo integer 非递归遍历 stack size push
package com.basic.bt;
import java.util.ArrayList;
import java.util.Stack;
/**
* Created by mac on 2017/1/19.
*/
public class InOrderBT {
ArrayList<Integer> result = new ArrayList<Integer>();
ArrayList<Integer> traversal = new ArrayList<Integer>();
public void inorder(TreeNode root) {
if(root == null) {
return;
}
inorder(root.left);
result.add(root.val);
inorder(root.right);
}
public void inorderTraversal(TreeNode root) {
if(root == null)
{
return;
}
Stack<TreeNode> stack = new Stack<TreeNode>();
while(root != null || !stack.isEmpty())
{
while(root != null) {
stack.push(root);
root = root.left;
}
TreeNode tmp = stack.peek();
traversal.add(tmp.val);
stack.pop();
root = tmp.right;
}
}
public static void main(String[] args) {
InOrderBT in = new InOrderBT();
TreeNode root = new TreeNode(0);
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
root.left = node1;
root.right = node2;
node1.left = node3;
node1.right =node4;
in.inorderTraversal(root);
for(int i = 0; i < in.traversal.size(); i++) {
System.out.println(in.traversal.get(i));
}
}
}
标签:[] null blog roo integer 非递归遍历 stack size push
原文地址:http://www.cnblogs.com/superzhaochao/p/6323711.html