LC144 Binary Tree Preorder Traversal
2016-07-28 09:18
369 查看
递归前序遍历比较简单,非递归则需要用栈来设计遍历方法。
注意有栈为空但还未遍历完整棵树的情况,因此判断条件需要判断tmp是否为NULL
注意有栈为空但还未遍历完整棵树的情况,因此判断条件需要判断tmp是否为NULL
class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<int> result; if(root==NULL) return result; stack<TreeNode*> is; TreeNode* tmp=root; while(!is.empty()||tmp!=NULL) { if(tmp!=NULL) { is.push(tmp); result.push_back(tmp->val); tmp=is.top()->left; } else if(tmp==NULL) { tmp=is.top()->right; is.pop(); } } return result; } };
相关文章推荐
- jQuery函数attr()和prop()的区别
- hdu 4474 bfs
- 【Servlet开发】servlet的请求与响应(二)
- Android相对布局RelativeLayout,Intent用法,Intent传值(对象),Intent.action大全
- Halcon腐蚀膨胀算子
- 传引用&传值
- chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
- HashTable和HashMap区别
- JSP起源、JSP的运行原理、JSP的执行过程
- VS2015中使用Git
- OSChina 周四乱弹 ——孩子是自己的就好
- App第三方登录和分享开发的那些坑
- Android事件分发机制
- centos长ping输出日志的脚本
- 字符串的逆序输出
- python中的格式化输出用法总结
- Uva 340 - Master-Mind Hints
- 每日安全简讯20160728
- [分享] 来,做一个问卷调查(有抽奖!)
- 实现跨域cookie共享(转载)