226. Invert Binary Tree

Solution1:递归 pre-order / 分治

Time Complexity: O(N) Space Complexity: O(N) 递归缓存

Solution2:Iterative pre-order

Time Complexity: O(N) Space Complexity: O(N)

Solution2:BFS

Time Complexity: O(N) Space Complexity: O(N)

Solution1 Code:

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null) return null;
        
        TreeNode left_save = root.left;
        root.left = invertTree(root.right);
        root.right = invertTree(left_save);
        
        return root;
    }
}

Solution2 Code:

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null) return null;
        
        Stack<TreeNode> stack = new Stack<TreeNode>();
        stack.push(root);
        while(!stack.isEmpty()) {
            TreeNode cur = stack.pop();
            
            TreeNode left_save = cur.left;
            cur.left = cur.right;
            cur.right = left_save;
            
            if(cur.right != null) stack.push(cur.right);
            if(cur.left != null) stack.push(cur.left);
        }
        return root;
    }
}

Solution3 Code:

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null) return null;
        
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(root);
        while(!queue.isEmpty()) {
            TreeNode cur = queue.poll();
            
            TreeNode left_save = cur.left;
            cur.left = cur.right;
            cur.right = left_save;
            
            if(cur.right != null) queue.offer(cur.right);
            if(cur.left != null) queue.offer(cur.left);
        }
        return root;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容