本文次要记录一下leetcode树之从翻转二叉树

题目

翻转一棵二叉树。示例:输出:     4   /   \  2     7 / \   / \1   3 6   9输入:     4   /   \  7     2 / \   / \9   6 3   1备注:这个问题是受到 Max Howell 的 原问题 启发的 :    谷歌:咱们90%的工程师应用您编写的软件(Homebrew),然而您却无奈在面试时在白板上写出翻转二叉树这道题,这太蹩脚了。起源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/invert-binary-tree著作权归领扣网络所有。商业转载请分割官网受权,非商业转载请注明出处。

题解

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {    public TreeNode invertTree(TreeNode root) {        if (root == null) {            return root;        }        TreeNode tmp = root.left;        root.left = invertTree(root.right);        root.right = invertTree(tmp);        return root;    }}

小结

这里采纳递归的思路,首先用tmp保留一下left节点,之后递归翻转right节点赋值给left,再递归翻转tmp赋值为right。

doc

  • 翻转二叉树