lc面试准备:Invert Binary Tree
1 题目
Invert a binary tree.
     4
   /   \
  2     7
 / \   / \
1   3 6   9
to
     4
   /   \
  7     2
 / \   / \
9   6 3   1
接口: public TreeNode invertTree(TreeNode root)
2 思路
反转一颗二叉树。
可以用递归和非递归两种方法来解。
- 递归的方法,写法非常简洁,五行代码搞定,交换当前左右节点,并直接调用递归即可。
- 非递归的方法,参考树的层序遍历,借助Queue来辅助,先把根节点排入队列中,然后从队中取出来,交换其左右节点,如果存在则分别将左右节点在排入队列中,以此类推直到队列中木有节点了停止循环,返回root即可。
复杂度:两种方法的时间和空间复杂度一样,Time O(n);Space O(n)
3 代码
- 思路1:
        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;
	}
4 总结
考察二叉树的遍历。
非递归的实现,复习。请实现非递归。
5 参考
lc面试准备:Invert Binary Tree的更多相关文章
- 【07_226】Invert Binary Tree
		Invert Binary Tree Total Accepted: 54994 Total Submissions: 130742 Difficulty: Easy Invert a binary ... 
- 226. Invert Binary Tree(C++)
		226. Invert Binary Tree Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 ... 
- LeetCode Javascript实现 258. Add Digits 104. Maximum Depth of Binary Tree 226. Invert Binary Tree
		258. Add Digits Digit root 数根问题 /** * @param {number} num * @return {number} */ var addDigits = func ... 
- C#版 - 226. Invert Binary Tree(剑指offer 面试题19) - 题解
		版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - 2 ... 
- [LintCode] Invert Binary Tree 翻转二叉树
		Given n points on a 2D plane, find the maximum number of points that lie on the same straight line. ... 
- LeetCode—— Invert Binary Tree
		LeetCode-- Invert Binary Tree Question invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 ... 
- 【Invert Binary Tree】cpp
		题目: Invert Binary Tree Total Accepted: 20346 Total Submissions: 57084My Submissions Question Solutio ... 
- <LeetCode OJ> 226.  Invert Binary Tree
		226. Invert Binary Tree Total Accepted: 57653 Total Submissions: 136144 Difficulty: Easy Invert a bi ... 
- LeetCode_226. Invert Binary Tree
		226. Invert Binary Tree Easy Invert a binary tree. Example: Input: 4 / \ 2 7 / \ / \ 1 3 6 9 Output: ... 
随机推荐
- txt无法正常保存正文的解决办法
			最近遇到一个问题,txt文档中写了中文,则保存的时候 就会提示“该文件含有unicode格式字符,当文件保存为ANST编码文本文件时,该字符将会丢失”.虽然有解决办法,但不彻底,用起来总是很费劲,研究 ... 
- Linux 确定系统glibc版本
			在shell中,可以直接运行glibc共享库文件获取glibc版本,CentOS下执行: /lib/libc.so. 输出为: GNU C Library stable release version ... 
- Gym 100187M-Heaviside Function
			题意:给定函数: f(x) = θ(s1x - a1) + θ(s2x - a2) + ... + θ(snx - an), where si = ± 1. Calculate its values ... 
- CEO、COO、CFO、CTO
			CEO.COO.CFO.CTO是什么意思? 网站里的各种职位: CEO(Chief executive officer)首席执行官 类似总经理.总裁,是企业的法人代表. COO(Chief opera ... 
- H TML5 之 (3)转动的圆球
			HTML5 练手之二,一个能够为之圆心转动的圆球,原理和时钟的非常像,只是要把握转动的时间控制,同时加入了点渐变色 HTML5 练手之二,一个能够为之圆心转动的圆球,原理和时钟的非常像,只是要把握转动 ... 
- android - DefaultHttpClient设置超时.
			Android的DefaultHttpClient中,超时设置需要调用HttpConnectionParams.setConnectionTimeout方法,如(以下代码的31~35行代码): ref ... 
- c语言字符数组与字符串的使用详解
			转自:http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ ... 
- LATEX学习笔记1
			LATEX源文件的结构分三大部分,依次为:文档类声明.序言(可选).正文. 文档结构 \documentclass{article} \usepackage{amsmath} \usepackage{ ... 
- Qt中,当QDockWidget的父窗口是一个不可以拖动的QTabWidget的时候实现拖动的方法
			之前在做有关QDockWidget的内容时候遇到了瓶颈,那就是窗口弹出来之后拖动不了,也不可以放大和缩小,若是弹出来之后设置成了window的flags,也不可以拖动,而且也不是需要的效果. 1.弹出 ... 
- ACM YTU  《挑战编程》第一章 入门 Problem E: Graphical Editor
			Description Graphical editors such as Photoshop allow us to alter bit-mapped images in the same way ... 
