力扣 226题 翻转二叉树

Question 226-invert binary tree

解题思路

这棵树上的所有子节点的左子树将转变为该子节点的右子树,而其右子树将转变为新的左子树。

所以,解题的步骤大致可以分为:

  1. 使用深度优先搜索,先遍历左子树,后遍历右子树
  2. 如果当前节点已经没有子节点,返回自身
  3. 如果当前节点有子树,通过第二步(深度优先搜索算法返回)分别得到当前节点的左子树和右子树(也就是,要遍历两次),然后将他们分别赋值给当前节点的右子节点和左子节点,最后将自身也作为一个子树,返回回去。

代码

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (null == root) return null;

        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);

        root.left = right;
        root.right = left;

        return root;
    }
}

力扣 226题 翻转二叉树

上一篇:1711. 大餐计数


下一篇:redis面试题