给定一个二叉树,返回它的中序 遍历。

示例:

输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2]

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

递归:

class Solution {
public:
vector<int> res;
vector<int> inorderTraversal(TreeNode* root)
{
if(root == NULL)
return res;
if(root ->left != NULL)
{
inorderTraversal(root ->left);
}
res.push_back(root ->val);
if(root ->right != NULL)
{
inorderTraversal(root ->right);
}
return res;
}
};

迭代:

class Solution {
public:
vector<int> inorderTraversal(TreeNode* root)
{
vector<int> res;
stack<TreeNode*> s;
TreeNode *cur = root;
while(!s.empty() || cur != NULL)
{
if(cur != NULL)
{
s.push(cur);
cur = cur ->left;
}
else
{
cur = s.top();
s.pop();
res.push_back(cur ->val);
cur = cur ->right;
}
}
return res;
}
};

最新文章

  1. strcpy 库函数 拷贝函数
  2. 如何实现EndNote中的PDF批量导出
  3. paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场
  4. 组合数学 - 置换群的幂运算 --- poj CARDS (洗牌机)
  5. Android实现XML解析技术
  6. 3DES 加解密,对长度不限制
  7. HashSet和LinkedHashSet特点.
  8. POJ 1523 SPF (割点,连通分量)
  9. springboot+maven快速构建项目
  10. js时间格式的转换
  11. Lua代码解析-写给C和C++开发人员
  12. winform窗体全屏
  13. 【.NET】Repeater控件简单的数据绑定(有bool,日期,序号)
  14. C++零食:使用Unicode版的预定义宏__FUNCTION__
  15. OC语言中如何在便利构造器中利用便利初始化进行初始化
  16. MySQL DNS反查导致连接缓慢
  17. SQLite学习手册(实例代码&lt;一&gt;)
  18. 版本控制工具--svn和git的使用(三) -----git的使用(1)
  19. CDH集群中YARN的参数配置
  20. JavaScript基础(三)

热门文章

  1. 6_1.springboot2.x整合JDBC与数据源配置原理解析
  2. C++的注释
  3. 由Toolbar造成的ListView最后一项显示不全
  4. java笔试之自守数
  5. 服务器访问数据库表mysql
  6. leetcode 131 Palindrome Pairs
  7. 杂项-VOD:VOD(视频点播)
  8. 关于SqlServer的内连接,外链接以及left join,right join之间的一些问题与区别。
  9. PAT甲级——A1001A+BFormat
  10. 通过实体类生成建表SQL语句实现方法