内容简介:给予一颗二叉树,返回其每层节点的平均值.例 :采用深度优先遍历, 从最底层节点开始, 将每个节点的左右节点进行交换即可.
给予一颗二叉树,返回其每层节点的平均值.
例 :
给予树:
4
/ \
2 7
/ \ / \
1 3 6 9
返回:
4
/ \
7 2
/ \ / \
9 6 3 1
解法
采用深度优先遍历, 从最底层节点开始, 将每个节点的左右节点进行交换即可.
/**
* 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 left = root.left;
TreeNode right = root.right;
if (left != null) {
invertTree(left);
}
if (right != null) {
invertTree(right);
}
root.left = right;
root.right = left;
return root;
}
}
Runtime: 0 ms, faster than 100.00% of Java online submissions for Invert Binary Tree. Memory Usage: 33.5 MB, less than 98.89% of Java online submissions for Invert Binary Tree.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Pragmatic Programmer
Andrew Hunt、David Thomas / Addison-Wesley Professional / 1999-10-30 / USD 49.99
本书直击编程陈地,穿过了软件开发中日益增长的规范和技术藩篱,对核心过程进行了审视――即根据需求,创建用户乐于接受的、可工作和易维护的代码。本书包含的内容从个人责任到职业发展,直至保持代码灵活和易于改编重用的架构技术。从本书中将学到防止软件变质、消除复制知识的陷阱、编写灵活、动态和易适应的代码、避免出现相同的设计、用契约、断言和异常对代码进行防护等内容。一起来看看 《The Pragmatic Programmer》 这本书的介绍吧!