LeetCode #226 翻转二叉树

Posted 三笠·阿卡曼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode #226 翻转二叉树相关的知识,希望对你有一定的参考价值。

题目

在这里插入图片描述

最佳代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
  • 先序遍历处理
class Solution {
    public TreeNode invertTree(TreeNode root) {

        if (root == null) {
            return root;
        }

        //先处理根节点,再交换左右子节点
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        //递归处理左右子树
        invertTree(root.left);
        invertTree(root.right);

        return root;
    }
}
  • 后序遍历处理
//后续遍历处理
public static TreeNode invertTree1(TreeNode root) {

     if (root == null) {
         return root;
     }

     //递归处理左右子树
     TreeNode left = invertTree(root.left);
     TreeNode right = invertTree(root.right);

     //先处理根节点,再交换左右子节点
     root.left = right;
     root.right = left;

     return root;
 }

后话

关于翻转二叉树这道算法题也有一个有趣的故事:据说Mac上Homebrew工具的创始人Max Howell去面试Google的时候被问到了翻转二叉树这道算法题,结果他没有解出来,Google的面试官跟他面面相觑,Google的面试官心想:90%的Mac开发者都在使用Homebrew这款工具,结果他的创始人连个翻转二叉树都不会写?Max Howell也一心不忿:面试为什么老是喜欢考这些算法题,考点别的不行么?结果就因为Howell没有答上来这道算法题导致他没有通过Google的面试。
其实私以为算法题跟工作中的编程确实沾边不大(设计模式都要好一些),这些大公司老是喜欢拿算法题去考面试者真的挺烦的。害,在如今内卷成风的情况下,也就靠算法题去刷人,不然我也不想 天天搁这力扣力扣的!

以上是关于LeetCode #226 翻转二叉树的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode #226 翻转二叉树

leetcode226 翻转二叉树(Easy)

LeetCode Java刷题笔记—226. 翻转二叉树

Leetcode226. 翻转二叉树(JAVA递归)

Leetcode刷题100天—226. 翻转二叉树(二叉树)—day03

Leetcode刷题100天—226. 翻转二叉树(二叉树)—day03