二叉树左右节点交换

二叉树中遍历方式有很多中,最简单的是前序遍历,打印自己,然后先左后右

// 前序遍历 根节点->左子树->右子数
    public void preOrderTraversal(Node node) {
        if (node == null) {
            return;
        }
        System.out.println(node.value);
        preOrderTraversal(node.left);
        preOrderTraversal(node.right);
    }

二叉树反转,首先左树遍历到底,然后再切换左右,然后切换右路

    public Node invertTree(Node root) {
        if (root == null) {
            return null;
        }
        //先遍历左子树到底
        root.left = invertTree(root.left);
        //遍历右子树
        root.right = invertTree(root.right);

        //左右子树互换
        Node tmp = root.left;
        root.left = root.right;
        root.right = tmp;

        return root;
    }

你可能感兴趣的:(二叉树左右节点交换)