Binary Tree Inorder Traversal

◇◆丶佛笑我妖孽 提交于 2020-02-27 01:22:08

Binary Tree Inorder Traversal

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].

 

/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
  public ArrayList<Integer> inorderTraversal(TreeNode root) {
    ArrayList<Integer> al = new ArrayList<Integer>();
    if(root == null) return al;
    Stack<TreeNode> s = new Stack<TreeNode>();
    TreeNode node = root;
    //s.push(node);
    while(node != null || !s.isEmpty()){
      if(node != null){
        s.push(node);
        node = node.left;
        continue;
      }
      node = s.pop();
      al.add(node.val);
      node = node.right;
    }
    return al;
  }
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!