美文网首页
二叉树的反转

二叉树的反转

作者: 加油_汤姆叔叔 | 来源:发表于2019-07-07 14:06 被阅读0次

leetcode原题:(https://leetcode-cn.com/problems/invert-binary-tree/)

题解:使用层序遍历的方式比较合适,其实只要交换每一层的左右子节点,因为交换每一串的左右子节点,左节点的左右子节点也会跟着交换过去,这时候只要把左节点的左子节点与右子节点交换,同时右节点也是如此操作即可达到题目要求。

class Solution {
    public TreeNode invertTree(TreeNode root) {
        // 本题使用层序遍历的方式
        if(root == null){
            return root;
        }
        
        Queue<TreeNode> queue = new LinkedList<>();
        queue.offer(root);
        while(!queue.isEmpty()){
            TreeNode cur = queue.poll();
            TreeNode temp = cur.left;
            
            //   不需要考虑是否为空的,因为为空的话把空交换过去交换过去即可。
            cur.left = cur.right;
            cur.right = temp;
            
            if(cur.left != null){
                queue.offer(cur.left);
            }
            if(cur.right != null){
                queue.offer(cur.right);
            }
        }
        
        return root;
    }
}

相关文章

  • 02-13:leetcode重刷2之链表反转

    1、链表反转 2、反转二叉树 3、合并二叉树 4、对称二叉树 1、反转链表 classSolution: defr...

  • Golang反转二叉树

    反转二叉树

  • 一些简单的面试经典算法题目

    1. 反转二叉树 解:运用递归;反转左子树,反转右子树,交换左右子树 2.反转单链表 解: 递归解法:Javapu...

  • 二叉树

    title: 二叉树date: 2016-08-16 14:47:21tags: 算法 二叉树 二叉树的反转

  • lint0175. 0480.

    反转一棵二叉树 Binary Tree Paths

  • 2020-10-28

    快排 链表反转 链表反转 二叉树非递归实现 按层排序 二叉树深度 合并有序数组 二分查找 有序数组 查找 楼梯问题

  • 世界名题.反转二叉树 226Invert Binary Tree

    今天碰到了世界名题:反转二叉树。 名题的由来,是一个著名程序员去谷歌面试因为不会反转二叉树被拒,Google: 9...

  • Swift-反转二叉树

    题目: 反转二叉树其实就是二叉树的镜像.4/ 2 7/ \ / 1 3 6 9to4/ ...

  • 二叉树遍历

    二叉树 二叉树的存储结构 前序遍历 中序遍历 后序遍历 遍历代码 反转二叉树 深入学习二叉树 二叉树-你必须要懂!...

  • LeetCode0305

    461. 汉明距离 617. 合并二叉树 226. 翻转二叉树 104. 二叉树的最大深度 206. 反转链表 2...

网友评论

      本文标题:二叉树的反转

      本文链接:https://www.haomeiwen.com/subject/mqmbhctx.html