*LeetCode-94 二叉树的中序遍历

问题:

中序遍历二叉树

分析:

1.递归解法

2.栈+循环

   嵌套循环

  内层循环一直判断当前节点有没有左节点,有就入栈,当前节点等于左节点,没有的话,就出栈打印,当前节点再等于右节点,然后回到开始进行循环判断右节点的左节点是不是空。

代码:

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> listTree = new ArrayList<Integer>();
TreeNode cur = root;
Stack s = new Stack();
while(!s.empty()||cur!=null){
while(cur!=null){
s.push(cur);
cur = cur.left;
}
cur = (TreeNode) s.pop();
listTree.add(cur.val);
cur = cur.right;
}
return listTree;
}
}

posted @ 2019-10-15 11:24  高鸣泽  阅读(131)  评论(0)    收藏  举报