首页 > 其他 > 详细

力扣 226题 翻转二叉树

时间:2021-07-08 10:00:55      阅读:15      评论:0      收藏:0      [点我收藏+]

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题 翻转二叉树

原文:https://www.cnblogs.com/scarecrow-wbl/p/14984062.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!