Leetcode226. 翻转二叉树
程序员文章站
2022-05-18 14:16:22
...
Leetcode226. 翻转二叉树
题目
翻转一棵二叉树。
示例:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
题解:
迭代、递归
scala代码如下:
/**
* 迭代
*
* @param root
* @return
*/
def invertTree(root: TreeNode): TreeNode = {
val queue = new util.LinkedList[TreeNode]()
queue.add(root)
while (!queue.isEmpty) {
val node = queue.poll()
val temp = node.left
node.left = node.right
node.right = temp
if (node.left != null) queue.add(node.left)
if (node.right != null) queue.add(node.right)
}
root
}
/**
* 递归
*
* @param root
* @return
*/
def invertTree2(root: TreeNode): TreeNode = {
if (root == null) null
else {
val left = invertTree2(root.left)
val right = invertTree2(root.right)
root.left = right
root.right = left
root
}
}
上一篇: SAP VK11/VK13保存时增强
下一篇: *Java基础之数组**