二叉树的非递归后序遍历
来源:互联网 发布:php比较好的论坛 编辑:程序博客网 时间:2024/06/05 18:38
输出二叉树的后序遍历序列,不允许使用递归
如[2,6,null,8],输出[8,6,2]
Binary Tree Postorder Traversal
借助栈,遍历二叉树
先让所有的左孩子结点入栈
再将右孩子结点入栈
根结点出栈时,比如检测右孩子结点是否已被访问或不存在
若未被访问,根结点必须重新入栈(因后序遍历应先打印右孩子结点的值)
/** * 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> postorderTraversal(TreeNode* root) { vector<int> result; stack<const TreeNode*> s; const TreeNode *cur,*prev; cur=root; do { while(cur) { s.push(cur); cur=cur->left; } prev=NULL; while(!s.empty()) { cur=s.top(); s.pop(); if(cur->right==prev) { result.push_back(cur->val); prev=cur; } else { s.push(cur); cur=cur->right; break; } } }while(!s.empty()); return result; }};
0 0
- 二叉树的后序递归,非递归遍历
- 后序遍历二叉树非递归
- 非递归后序遍历二叉树
- 非递归后序遍历二叉树
- 非递归后序遍历二叉树
- 二叉树非递归后序遍历
- 二叉树非递归后序遍历
- 二叉树非递归后序遍历
- 非递归后序遍历二叉树
- 二叉树非递归后序遍历
- 二叉树非递归后序遍历
- 非递归遍历后序二叉树
- 二叉树非递归后序遍历(非递归遍历中最麻烦的一个)
- 二叉树的非递归前序、后序遍历
- 二叉树的非递归后序遍历
- 二叉树的非递归后序遍历算法
- 非递归实现二叉查找树的后序遍历
- 二叉树的非递归后序遍历算法
- MongoDB的安装与基本使用
- 【bzoj 2434】【codevs 1946】[Noi2011]阿狸的打字机(AC自动机)
- Android WiFi-ADB
- vim 复制和粘贴
- 设置notepad++ 的 tab 设为4个空格和设置为中文语言
- 二叉树的非递归后序遍历
- hdu2063过山车(二分图模板题)
- 随记
- Apache HttpClient
- HDU1059 && POJ1014 :Dividing(多重背包)
- 奇偶校验、CRC校验、海明码校验
- Spring管理Action类和Struts2管理Action类比较
- UITableView 加载cell 的几种常用方式
- wamp 完整卸载问题