博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
翻转二叉树
阅读量:3956 次
发布时间:2019-05-24

本文共 1047 字,大约阅读时间需要 3 分钟。

20210112

难度简单728

翻转一棵二叉树。

示例:

输入:

4   /   \  2     7 / \   / \1   3 6   9

输出:

4   /   \  7     2 / \   / \9   6 3   1

备注:

这个问题是受到 的  启发的 :

谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。

通过次数177,719提交次数228,420

 

/** * 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) {            //todo 核心:一直让自己的左右子树互换,直到叶子结点(没有左右子树了);            //递归出口条件:左右子树为null了,即叶子结点;            if (root == null) {                return null;  //这里是递归出口:在这里返回了,不再进行下边的转换和递归操作了。            }            //TreeNode leftTree=root.left; //左子树; (这样赋值,后边再转换,会无法完成转换,不知为何)            //TreeNode rightTree=root.right; //右子树;(这样赋值,后边再转换,会无法完成转换,不知为何)            //互换:            TreeNode temp = root.right;            root.right = root.left;            root.left = temp;            //递归            invertTree(root.right);            invertTree(root.left);            return root;        }    }

 

 

 

 

 

转载地址:http://dytzi.baihongyu.com/

你可能感兴趣的文章
Java常用英语汇总(更新升级版)
查看>>
Android性能优化
查看>>
Canvas入门(一)
查看>>
Canvas入门(一)
查看>>
Canvas入门(一)
查看>>
DbUtils入门
查看>>
DTD约束简介
查看>>
Eclipse Debug调试
查看>>
Eclipse Debug调试
查看>>
Hibernate的注解和XML
查看>>
JavaScript闭包
查看>>
JavaScript原型
查看>>
JavaScript原型
查看>>
JavaScript原型
查看>>
JDK工具
查看>>
JDK工具
查看>>
JNA-JNI升级版
查看>>
JNA-JNI升级版
查看>>
Android 下 JNI 开发
查看>>
Android 下 JNI 开发
查看>>