题目链接
https://leetcode-cn.com/problems/invert-binary-tree/
描述
翻转一棵二叉树。
示例
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
代码
bfs
class Solution {
public TreeNode invertTree(TreeNode root) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
for (int i = queue.size(); i > 0; i--) {
TreeNode cur = queue.poll();
if (cur != null) {
TreeNode node = cur.left;
cur.left = cur.right;
cur.right = node;
queue.offer(cur.left);
queue.offer(cur.right);
}
}
}
return root;
}
}
dfs
class Solution {
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return root;
}
TreeNode left = invertTree(root.left);
TreeNode right = invertTree(root.right);
root.left = invertTree(root.right);
root.right = invertTree(root.left);
return root;
}
}