二叉树的中序遍历

来源:互联网 发布:姚明球衣退役 知乎 编辑:程序博客网 时间:2024/06/15 19:31
class Solution {//递归实现ArrayList<Integer> list = new ArrayList<Integer>();    public ArrayList<Integer> midorderTraversal(TreeNode root) {            if(root != null){        midorderTraversal(root.left);        list.add(root.val);        midorderTraversal(root.right);        }        return list;    }    //循环实现    public ArrayList<Integer> midorderTraversal2(TreeNode root) {       ArrayList<Integer> list = new ArrayList<Integer>();    Stack<TreeNode> stack = new Stack<TreeNode>();    TreeNode cur = root, visit = null;    while(cur != null || !stack.isEmpty()){    //循环遍历左孩子    if(cur != null){    stack.push(cur);    cur = cur.left;       }else{    cur = stack.peek();    if(cur.right == null || cur.right == visit){       visit = stack.pop();;    cur = null;    }else{    list.add(cur.val);    cur = cur.right;    }    }        }    return list;    }}

原创粉丝点击