首页 > 其他 > 详细

二叉树中序遍历

时间:2020-07-30 09:56:02      阅读:85      评论:0      收藏:0      [点我收藏+]

二叉树中序遍历

方法一

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

方法二

递归

class Solution {
    List<Integer> res = new ArrayList<>();
    public List<Integer> inorderTraversal(TreeNode root) {
        dfs(root);
        return res;
    }
    private void dfs(TreeNode node){
        if(node == null)return; 
        dfs(node.left);
        res.add(node.val);
        dfs(node.right);
    }
}

二叉树中序遍历

原文:https://www.cnblogs.com/kikochz/p/13401630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!