力扣简226 反转二叉树

二叉树 递归 迭代

自己上午写了很久,一直迷迷糊糊的,鱼鱼在看电视,我快烦死了,死活改不出来。下午坐在这十五分钟就写出来了。

 

 

 应该属于递归。

 1 public static TreeNode invertTree(TreeNode root) {
 2         if(root==null) {
 3             return root;
 4         }
 5         if(root.left!=null||root.right!=null) {
 6             root.left=invertTree(root.left);
 7             root.right=invertTree(root.right);
 8             TreeNode temp;
 9             temp=root.left;
10             root.left=root.right;
11             root.right=temp;
12         }
13         return root;
14     }

 

写了个拉拉迭代哈哈哈

//自己试图写个迭代。失败了哈哈哈。看了下题解动画和扫了一眼代码,再次试图自己写。

 

 1 public static TreeNode invertTree(TreeNode root) {
 2         if(root==null) {
 3             return root;
 4         }
 5         Queue<TreeNode> queue=new LinkedList<TreeNode>();
 6         queue.add(root);
 7         while(!queue.isEmpty()) {
 8             TreeNode temp=queue.poll();
 9             if(temp.left!=null) {
10                 queue.add(temp.left);
11             }
12             if(temp.right!=null) {
13                 queue.add(temp.right);
14             }
15             TreeNode temp1=temp.left;
16             temp.left=temp.right;
17             temp.right=temp1;
18         }
19         return root;
20     }

 

posted @ 2022-06-01 14:42  Ssshiny  阅读(28)  评论(0)    收藏  举报