《剑指offer》刷题笔记(面试思路):二叉树的镜像
2017-09-06 12:52
597 查看
《剑指offer》刷题笔记(面试思路):二叉树的镜像
转载请注明作者和出处:http://blog.csdn.net/u011475210代码地址:https://github.com/WordZzzz/Note/tree/master/AtOffer
刷题平台:https://www.nowcoder.com/
题 库:剑指offer
编 者:WordZzzz
剑指offer刷题笔记面试思路二叉树的镜像
题目描述
解题思路
C版代码实现
递归
层序遍历
Python版代码实现
递归
层序遍历
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:
源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5
解题思路
还是BFS和DFS的套路,要么递归实现要么利用队列进行层序遍历。C++版代码实现
递归
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void Mirror(TreeNode *pRoot) { if(pRoot){ swap(pRoot->left, pRoot->right); Mirror(pRoot->left); Mirror(pRoot->right); } } };
层序遍历
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void Mirror(TreeNode *pRoot) { if(!pRoot) return; TreeNode* node; queue<TreeNode*> que; que.push(pRoot); while(!que.empty()){ node = que.front(); que.pop(); swap(node->left, node->right); if(node->left) que.push(node->left); if(node->right) que.push(node->right); } } };
Python版代码实现
递归
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回镜像树的根节点 def Mirror(self, root): # write code here if root != None: root.left,root.right = root.right,root.left self.Mirror(root.left) self.Mirror(root.right)
层序遍历
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回镜像树的根节点 def Mirror(self, root): # write code here if not root: return a=[root] while a: b=[] for node in a: node.left,node.right = node.right,node.left if node.left: b.append(node.left) if node.right: b.append(node.right) a=b
系列教程持续发布中,欢迎订阅、关注、收藏、评论、点赞哦~~( ̄▽ ̄~)~
完的汪(∪。∪)。。。zzz
相关文章推荐
- 剑指offer 19题 【面试思路】二叉树的镜像
- 面试思路:二叉树的镜像
- 剑指offer:(19)面试官谈面试思路:二叉树的镜像
- 剑指offer-题19:二叉树的镜像
- 剑指Offer(27)二叉树的镜像
- 《剑指Offer》 二叉树的镜像
- 《剑指Offer》题目:二叉树的镜像
- 剑指offer:二叉树的镜像
- 【剑指Offer面试编程题】题目1521:二叉树的镜像--九度OJ
- 剑指Offer系列-面试题19:二叉树的镜像
- 剑指offer面试题19 二叉树的镜像
- 剑指offer——面试题19:二叉树的镜像
- 二叉树的镜像 (剑指offer)!!!(两个有序链表的合并,链表的逆置)
- 剑指offer-4-面试19:二叉树的镜像
- 【剑指Offer面试编程题】题目1521:二叉树的镜像--九度OJ
- 剑指offer--二叉树的镜像
- 剑指Offer:二叉树的镜像
- 剑指offer-第四章解决面试题的思路(二叉树的镜像)
- 《剑指offer》刷题笔记(树):重建二叉树
- 【从零单排之微软面试100题系列】15之二叉树的镜像