226. invert binary tree 解答

Invert a binary tree.

4

/
2 7
/ /
1 3 6 9
to
4
/
7 2
/ /
9 6 3 1
Trivia:
This problem was inspired by this original tweet by Max Howell:
Google: 90% of our engineers use the software you wrote (Homebrew), but you can’t invert a binary tree on a whiteboard so fuck off.

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null)
return null;
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.add(root);// 把节点储存在链表里
while (!queue.isEmpty()) {// 循环
TreeNode current = queue.remove();// 提取节点
TreeNode temp = current.left;// 左右交换
current.left = current.right;
current.right = temp;
if (current.left != null)
queue.add(current.left);
if (current.right != null)
queue.add(current.right);
}
return root;
}
}