题目

分析

交换二叉树的左右子树。

递归非递归两种方法实现。

AC代码

class Solution {
public:
//递归实现
TreeNode* invertTree(TreeNode* root) {
if (!root)
return root; TreeNode *tmp = root->left;
root->left = invertTree(root->right);
root->right = invertTree(tmp); return root;
} //非递归实现
TreeNode* invertTree2(TreeNode* root) {
if (root == NULL)
return root;
queue<TreeNode*> tree_queue;
tree_queue.push(root); while (!tree_queue.empty()){
TreeNode * pNode = tree_queue.front();
tree_queue.pop(); TreeNode * pLeft = pNode->left;
pNode->left = pNode->right;
pNode->right = pLeft; if (pNode->left)
tree_queue.push(pNode->left);
if (pNode->right)
tree_queue.push(pNode->right);
}
return root;
}
};

最新文章

  1. IOS真机测试
  2. [转载]Jquery mobile 新手问题总汇
  3. AT&amp;T ASSEMBLY FOR LINUX AND MAC (SYS_FORK)
  4. s表达式和json表达式
  5. java版本 ueditor 在线编辑器 配置
  6. MyEclipse下Struts2配置使用和Ajax、JSON的配合
  7. bzoj4198 荷马史诗 哈夫曼编码
  8. Office 365也是.NET Core应用开发新战场
  9. zsh: command not found: conda的一种解决方法
  10. linux配置jdk环境变量
  11. 【转】cJSON 使用笔记
  12. [No0000179]改善C#程序的建议2:C#中dynamic的正确用法
  13. sql语句查询结果排序
  14. Python数据类型之dict和set
  15. Git工作区、暂存区和版本库
  16. 利用Red Blob游戏介绍A*算法
  17. scala 有 + 运算符吗? - 03
  18. DPDK报文分类与访问控制
  19. CStringArray序列化处理
  20. Webstorm设置代码提示

热门文章

  1. Net Core应用,在CentOS上运行
  2. eclipse Java项目如何修改包名
  3. (转)Linux下select, poll和epoll IO模型的详解
  4. Oracle中文乱码,字符集问题处理
  5. SQL判断一个事件段 是否在数据库中与其他时间段有重叠 判断时间重叠
  6. [Java][Web] Servlet中转发和重定向比较
  7. 架构演进历程及为什么选择Spring Cloud
  8. css3弹性伸缩和使用
  9. windows下安装pm2
  10. Python3+Selenium3+webdriver学习笔记10(元素属性、页面源码)