杭州网站建设哪家强/培训心得体会1000字通用
一周没发博客,算法好难!一直在复习前面的,哈希表、链表、二叉树已经够我喝一壶了,不过我一定要啃下来,哪怕慢一点,也不能盲目的追求速度,勤于复习才能将知识变成自己的,复习比学习重要!!
今天复习翻转二叉树的时候吗,发现BFS其实更加适合这道题,因为这道题本身就是以“层”为逻辑去进行的——每层翻转就好了
之前用的DFS递归是真的好恶心555
给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
示例 1:
输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]
// BFS解法
class Solution {public TreeNode invertTree(TreeNode root) {if(root == null){return root;}Queue<TreeNode> que = new LinkedList<>();que.offer(root);while(!que.isEmpty()){int size = que.size();while(size > 0){TreeNode temp = que.poll();change(temp);// 翻转方法if(temp.left != null)que.offer(temp.left);if(temp.right != null)que.offer(temp.right);size --;}}return root;}public void change(TreeNode node){TreeNode temp = node.left;node.left = node.right;node.right = temp;}
}