力扣简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 }

浙公网安备 33010602011771号