Invert Binary (recursive and iterative)
2016-05-16 08:55
281 查看
两种做饭 递归相对好做
1. recursive
class Solution {
public:
void swap(TreeNode** left, TreeNode** right)
{
TreeNode* temp = (*left);
*left = *right;
*right = temp;
}
TreeNode* invertTree(TreeNode* root) {
if (root == nullptr)
return root;
invertTree(root->left);
invertTree(root->right);
swap ((&root->left), (&root->right));
return root;
}
};其实核心思想还是 1.左边到底 2.借助程序的stack 自动跳回到上一根结点 然后再左边到底
2. Iterative
1. recursive
class Solution {
public:
void swap(TreeNode** left, TreeNode** right)
{
TreeNode* temp = (*left);
*left = *right;
*right = temp;
}
TreeNode* invertTree(TreeNode* root) {
if (root == nullptr)
return root;
invertTree(root->left);
invertTree(root->right);
swap ((&root->left), (&root->right));
return root;
}
};其实核心思想还是 1.左边到底 2.借助程序的stack 自动跳回到上一根结点 然后再左边到底
2. Iterative
相关文章推荐
- 远程通知
- 机器学习/深度学习/自然语言处理学习路线
- Es使用。
- Shell标准输出、标准错误
- 定义一个UIEdgeInset全局变量
- 数组排序后获得新数组
- url转成字符串
- 根据segue跳转
- 获取section下的子控件
- windows环境下,安装zookeeper~
- 如何以“正确的姿势”阅读开源软件代码
- 获取当前系统版本
- method_exchangeImplementations方法互换
- 23种设计模式之责任连模式
- 检查是否为BST
- EasyCharts,简单易用的Excel图表插件
- 一个Filter配置多个url-pattern
- ppt怎么设置结束时播放音乐
- 开发IOS推送功能客户端需要做的事情
- APNS发消息的原理