二叉树迭代遍历
来源:互联网 发布:淘宝 不良资产 在哪里 编辑:程序博客网 时间:2024/06/06 17:16
struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };/*前序*/vector<int> preorderTraversal(TreeNode *root) { vector<int> result; if(!root) return result; stack<TreeNode*> stack; stack.push(root); TreeNode* cur = NULL; while(!stack.empty()) { cur = stack.top(); result.push_back(cur -> val); stack.pop(); if(cur -> right) stack.push(cur -> right); if(cur -> left) stack.push(cur -> left); } return result; } /*中序*/ vector<int> inorderTraversal(TreeNode* root) { vector<int> result; if(!root) return result; stack<TreeNode*> stack; TreeNode* cur = root; while(cur != NULL || !stack.empty()) { if(cur) { stack.push(cur); cur = cur -> left; } else { cur = stack.top(); result.push_back(cur -> val); stack.pop(); cur = cur -> right; } } return result;}/*后序*/vector<int> postorderTraversal(TreeNode* root) { vector<int> result; if(!root) return result; stack<TreeNode*> stack; stack.push(root); TreeNode* cur = NULL; while(!stack.empty()) { cur = stack.top(); if(cur -> left == NULL && cur -> right == NULL) { result.push_back(cur -> val); stack.pop(); } else { if(cur -> right) { stack.push(cur -> right); cur -> right = NULL; } if(cur -> left) { stack.push(cur -> left); cur -> left = NULL; } } } return result;}
0 0
- 二叉树迭代遍历
- 二叉树遍历、分层遍历
- 遍历二叉树--二叉树
- 二叉树遍历
- 二叉树逐层遍历
- 二叉树遍历
- 二叉树的遍历
- (原创)遍历二叉树
- 二叉树遍历-php
- 查找--遍历二叉树
- 遍历二叉树
- 二叉树遍历规则
- 二叉树的遍历
- 二叉树遍历
- 遍历二叉树
- 二叉树遍历问题
- 二叉树遍历
- 二叉树遍历(zz)
- UVa 120 Stacks of Flapjacks
- 畅通工程
- How to Setup OpenERP (Odoo) on CentOS 7.x
- Android自定义倒计时控件
- hdu 2121 Ice_cream’s world II(无根结点最小树形图)
- 二叉树迭代遍历
- QLatin1String类
- jQuery中Ajax的基本使用(1)
- Java 7之基础 - 强引用、弱引用、软引用、虚引用(总结的很好)
- 反射调用
- 用函数重载输出两数乘积
- leetcode 089 Gray Code
- xlistview上拉加载下拉刷新
- 软考程序员随笔-----6