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 翻转二叉树的主要内容,如果未能解决你的问题,请参考以下文章