遞歸算法:
class Solution {
ArrayDeque<TreeNode> q=new ArrayDeque<>();
public TreeNode invertTree(TreeNode root) {
if(root!=null)
{
TreeNode leftNode=root.left;
root.left=invertTree(root.right);
root.right=invertTree(leftNode);
}
return root;
}
}
非遞歸隊列形式:
class Solution {
public TreeNode invertTree(TreeNode root) {
ArrayDeque<TreeNode> q=new ArrayDeque<>();
if(root==null) return root;
q.offer(root);
while(!q.isEmpty())
{
TreeNode t=q.peek();
q.poll();
TreeNode leftRes=t.left;
t.left=t.right;
t.right=leftRes;
if(t.left!=null)
{
q.offer(t.left);
}
if(t.right!=null)
{
q.offer(t.right);
}
}
return root;
}
}