LeetCode 144: Binary Tree Preorder Traversal 解题与思考
来源:互联网 发布:jdbc连接数据库5个步骤 编辑:程序博客网 时间:2024/06/06 02:39
LeetCode 144: Binary Tree Preorder Traversal 解题与思考
[原题链接]
题目描述
实现非递归的树的前序遍历
思路
当然也还是和之前的后序遍历一样要用到栈,而最好的地方就是当前节点访问完就可以立即输出。
不过当前节点还是要依次压栈的,因为你还要通过栈内的点来确定什么时候访问它的右子树。
算法
前期准备:一个节点栈,一个答案数组
1、对于一个节点,将其入栈,并且将其加入答案数组,将当前节点设为其左子节点
2、当前节点为空,若
栈顶节点无右子节点
那么其为一个叶子节点,直接将栈顶元素出栈栈顶节点有右子节点
那么就将当前节点设为该右子节点,并将栈顶元素出栈
代码
class Solution {public: vector<int> preorderTraversal(TreeNode* root) { TreeNode *nowNode = root; vector<int> result; stack<TreeNode*> treeStack; while ( nowNode || !treeStack.empty() ) { if ( nowNode ) { result.push_back(nowNode->val); treeStack.push(nowNode); nowNode = nowNode->left; } else { TreeNode *topNode = treeStack.top(); if ( topNode->right /*&& lastNode != topNode */ ) { nowNode = topNode->right; treeStack.pop(); } else { treeStack.pop(); } } } return result; }};
思考
相比后序遍历,简直没有难度,也没什么好说的了
阅读全文
0 0
- LeetCode 144: Binary Tree Preorder Traversal 解题与思考
- LeetCode 解题报告 Binary Tree Preorder Traversal
- 【LeetCode】Binary Tree Preorder Traversal 解题报告
- LeetCode(144) Binary Tree Preorder Traversal解题报告
- 【LeetCode】144 . Binary Tree Preorder Traversal 解题报告
- LeetCode 145:Binary Tree Postorder Traversal 解题与思考
- LeetCode 94: Binary Tree Inorder Traversal 解题与思考
- LeetCode(144)Binary Tree Preorder Traversal
- LeetCode: Binary Tree Preorder Traversal [144]
- [leetcode 144]Binary Tree Preorder Traversal
- leetcode || 144、Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal - LeetCode 144
- LeetCode 144 : Binary Tree Preorder Traversal
- LeetCode 144 Binary Tree Preorder Traversal
- LeetCode 144: Binary Tree Preorder Traversal
- Leetcode[144]-Binary Tree Preorder Traversal
- leetcode(144):Binary Tree Preorder Traversal
- Binary Tree Preorder Traversal (leetcode 144)
- 01背包问题
- 二叉树的非递归遍历
- 图像分割—基于图的图像分割(Graph-BasedImageSegmentation)
- html label-标签
- 仿照DatePickerFragment实现的TimePickerFragment
- LeetCode 144: Binary Tree Preorder Traversal 解题与思考
- Qt的传统安装方法
- 【数据结构】4.串
- 动态规划系列---求数组中两个元素差的最大值
- ZigBee规范各层原语及其功能概述
- hadoop(ha)+hbase
- LeetCode 94: Binary Tree Inorder Traversal 解题与思考
- 2017-10-11 ACM感言
- zkw线段树模板及理解