Chinaunix首页 | 论坛 | 博客
  • 博客访问: 266799
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-03-22 16:52:12

//Given a binary tree, return the inorder traversal of its nodes' values.
//
//For example:
//Given binary tree {1,#,2,3},
//   1
//    \
//     2
//    /
//   3
//return [1,3,2].
//
//Note: Recursive solution is trivial, could you do it iteratively?
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;






public class inorderTraversal {
public List inorderTraversal(TreeNode root) {
        List temp=new  ArrayList();
        if(root!=null){
            temp.addAll(inorderTraversal(root.left));
            temp.add(root.val);
            temp.addAll(inorderTraversal(root.right));
        }
       return temp;
   }


 public List inorderTraversalNo(TreeNode root) {
        List temp=new  ArrayList();
        Stack s=new Stack();
        TreeNode p=root;
   while(p!=null||!s.empty())
   {
       while(p!=null)
       {
           s.push(p);
           p=p.left;
       }
       if(!s.empty())
       {
           p=s.pop();
           temp.add(p.val);
           
           p=p.right;
       }
   }    
       return temp;
   }
}

阅读(339) | 评论(0) | 转发(0) |
0

上一篇:FindMin

下一篇:LevelOrderTraversal

给主人留下些什么吧!~~