leetcode :二叉树的前中后序遍历
来源:互联网 发布:网络推广炒作 编辑:程序博客网 时间:2024/05/16 18:05
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> ret; if(root==NULL) return ret; TreeNode* p; stack<TreeNode*> s; s.push(root); while(!s.empty()){ p=s.top(); s.pop(); ret.push_back(p->val); if(p->right!=NULL) s.push(p->right); if(p->left!=NULL) s.push(p->left); } return ret; }};
class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> ret; if(root==NULL) return ret; TreeNode* p=root; stack<TreeNode*> s; while(p!=NULL || !s.empty()){ while(p!=NULL){ s.push(p); ret.push_back(p->val); p=p->left; } if(!s.empty()){ p=s.top(); s.pop(); p=p->right; } } return ret; }};
class Solution {public: vector<int> inorderTraversal(TreeNode* root) { vector<int> ret; if(root==NULL) return ret; stack<TreeNode *> s; TreeNode* p=root; while(p!=NULL || !s.empty()){ while(p!=NULL){ s.push(p); p=p->left; } if(!s.empty()){ p=s.top(); s.pop(); ret.push_back(p->val); p=p->right; } } return ret; }};
class Solution {public: vector<int> postorderTraversal(TreeNode* root) { vector<int> ret; if(root==NULL) return ret; stack<TreeNode *> s; s.push(root); TreeNode* pre=NULL;//前一个输出结点 TreeNode* curr=root; while(!s.empty()){ curr=s.top(); // 叶子结点 或者 它的子结点已经输出了(它有右结点因为先压右,那么curr->right==pre,否则curr->left==pre) if( (curr->left==NULL && curr->right==NULL) || (pre != NULL) && (curr->left==pre || curr->right==pre) ){ ret.push_back(curr->val); pre=curr; s.pop(); } else{ if(curr->right!=NULL) s.push(curr->right); if(curr->left!=NULL) s.push(curr->left); } } }};
层次遍历用队列:
http://blog.csdn.net/le119126/article/details/49070317(判断二叉树是否平衡、是否完全二叉树、是否二叉排序树)
0 0
- leetcode :二叉树的前中后序遍历
- leetcode二叉树遍历
- [leetcode]二叉树遍历
- Leetcode中二叉树的遍历
- LeetCode—二叉树遍历的情况
- LeetCode—二叉树的遍历
- leetcode中二叉树的遍历
- 【LeetCode题解】二叉树的遍历
- 【LeetCode题解】二叉树的遍历
- 【LeetCode题解】二叉树的遍历
- 【LeetCode题解】二叉树的遍历
- LeetCode二叉树遍历的问题
- 二叉树遍历LeetCode#144 #94 #145 (前中后序遍历)
- 二叉树的前中后序遍历
- 二叉树的前中后序遍历
- 二叉树的前中后序遍历
- 二叉树的前中后序遍历
- LeetCode之通过二叉树的中序遍历和后序遍历还原二叉树
- CentOS Linux VPS服务器配置PPTP上网环境的2个方法
- 多线程(多线程原理)
- 黑马程序员--IO(上)
- 参考51单片机示例程序要注意的一点
- Android网络通信技术
- leetcode :二叉树的前中后序遍历
- uva152
- 杭电oj-1040-As Easy As A+B
- JAVA删除某一目录下的所有文件及文件夹(linnux环境)
- leetcode系列(43)strStr(KMP)
- 堆排序
- 学习算法第一篇:排序算法
- Minimum Path Sum
- myeclipse 下创建包提示The folder is already a source folder