LeetCode-226-翻转二叉树

题目描述:
给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

题目链接:LeetCode-226-翻转二叉树

解题思路:先想清楚用哪种遍历顺序:前序和后序更好一点。

代码实现:

class Solution {
    // 交换指的是交换 左右的指针
    public TreeNode invertTree(TreeNode root) {
        if (root==null){
            return root;
        }
         // 交换 root的左右孩子
        swapTreeNode(root);
        // 这里采用前序遍历的顺序:中左右
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }

    private TreeNode swapTreeNode(TreeNode node){
        // 注意,交换的是指针,而不是具体的val
        TreeNode tmp=node.left;
        node.left=node.right;
        node.right=tmp;
        return node;
    }
}

你可能感兴趣的:(LeetCode,leetcode,算法)