一、题目说明

题目94. Binary Tree Inorder Traversal,给一个二叉树,返回中序遍历序列。题目难度是Medium!

二、我的解答

用递归遍历,学过数据结构的应该都可以实现。

class Solution{
public:
vector<int> inorderTraversal(TreeNode* root){
if(root != NULL){
if(root->left !=NULL)inorderTraversal(root->left);
res.push_back(root->val);
if(root->right !=NULL)inorderTraversal(root->right);
}
return res;
}
private:
vector<int> res;
};
Runtime: 4 ms, faster than 61.00% of C++ online submissions for Binary Tree Inorder Traversal.
Memory Usage: 10.5 MB, less than 5.00% of C++ online submissions for Binary Tree Inorder Traversal.

三、优化措施

用非递归算法,需要一个栈,代码如下:

class Solution{
public:
//iteratively
vector<int> inorderTraversal(TreeNode* root){
stack<TreeNode*> st;
TreeNode* p = root;
if(p != NULL){
while(p !=NULL) {
st.push(p);
p = p->left;
} while(!st.empty()){
p = st.top();
st.pop();
res.push_back(p->val); if(p->right !=NULL) {
p = p->right;
while(p !=NULL) {
st.push(p);
p = p->left;
}
}
}
}
return res;
}
private:
vector<int> res;
};

性能:

Runtime: 4 ms, faster than 60.93% of C++ online submissions for Binary Tree Inorder Traversal.
Memory Usage: 9.2 MB, less than 89.00% of C++ online submissions for Binary Tree Inorder Traversal.

最新文章

  1. Cacti -- Advance Ping
  2. CocoaPods安装教程
  3. [TD Cup 2014] TDL的YC牌 &amp; TDL的幼儿园
  4. X Window 设定介绍
  5. 数学(矩阵乘法):HDU 4565 So Easy!
  6. destoon实现调用热门关键字的方法
  7. 深入理解事件(event)与委托(delegate)
  8. Mybatis插件原理和PageHelper结合实战分页插件(七)
  9. 【WPF】获取电磁笔的压感
  10. MySQL中的联合索引学习教程
  11. shiro权限框架(四)
  12. 并发编程(一): POSIX 使用互斥量和条件变量实现生产者/消费者问题
  13. JS对json操作的扩展
  14. js+ajax编码三级联动
  15. 关闭iptables服务及命令行连接wifi及locale设置
  16. 机械臂运动学逆解(Analytical solution)
  17. java学习--java源文件
  18. 洛谷 P4475 巧克力王国 解题报告
  19. kubernetes 实战4_命令_Configure Pods and Containers
  20. Centos6.5安装ansible2.6.3

热门文章

  1. (分块暴力)Time to Raid Cowavans CodeForces - 103D
  2. Bootstrap File Input 的使用
  3. 爬虫之 App 爬取
  4. 对于n!的快速质因数分解
  5. Python 类中方法的内部变量,命名加&#39;self.&#39;变成 self.xxx 和不加直接 xxx 的区别
  6. 小白学Java:RandomAccessFile
  7. Shiro Web集成及拦截器机制(四)
  8. Java异常 | Error:java: Compilation failed: internal java compiler error
  9. 解决python报错:ImportError: No module named shutil_get_terminal_size 的方法
  10. 1-NoSQL介绍及Redis安装