Leetcode94. Binary Tree Inorder Traversal二叉树的中序遍历(两种算法)
2024-09-06 12:48:40
给定一个二叉树,返回它的中序 遍历。
示例:
输入: [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;
}
};
最新文章
- strcpy 库函数 拷贝函数
- 如何实现EndNote中的PDF批量导出
- paip.提高效率---微信 手机app快速开发平台—微网络撬动大市场
- 组合数学 - 置换群的幂运算 --- poj CARDS (洗牌机)
- Android实现XML解析技术
- 3DES 加解密,对长度不限制
- HashSet和LinkedHashSet特点.
- POJ 1523 SPF (割点,连通分量)
- springboot+maven快速构建项目
- js时间格式的转换
- Lua代码解析-写给C和C++开发人员
- winform窗体全屏
- 【.NET】Repeater控件简单的数据绑定(有bool,日期,序号)
- C++零食:使用Unicode版的预定义宏__FUNCTION__
- OC语言中如何在便利构造器中利用便利初始化进行初始化
- MySQL DNS反查导致连接缓慢
- SQLite学习手册(实例代码<;一>;)
- 版本控制工具--svn和git的使用(三) -----git的使用(1)
- CDH集群中YARN的参数配置
- JavaScript基础(三)