DFS:
递归
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) return root;
TreeNode tmp = root.left;
root.left = root.right;
root.right = tmp;
invertTree(root.left);
invertTree(root.right);
return root;
}
}
迭代BFS:
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root == null) return root;
Deque<TreeNode> st = new LinkedList<>();
st.addLast(root);
while(!st.isEmpty()){
int size = st.size();
while(size > 0){
TreeNode node = st.pollLast();
swap(node);
if(node.left != null) st.addLast(node.left);