LeetCode *** 94. Binary Tree Inorder Traversal
来源:互联网 发布:个人网站域名名字 编辑:程序博客网 时间:2024/05/21 07:55
题目:
Given a binary tree, return the inorder traversal of its nodes' values.
For example:
Given binary tree {1,#,2,3}
,
1 \ 2 / 3
return [1,3,2]
.
Note: Recursive solution is trivial, could you do it iteratively?
分析:
中序遍历即可。我用的非递归。
代码:
/** * 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> inorderTraversal(TreeNode* root) { vector<int> res; if(root==NULL)return res; stack<TreeNode*> tree; stack<bool> visited; tree.push(root); visited.push(false); while(!tree.empty()){ TreeNode *tmp=tree.top(); bool isV=visited.top(); visited.pop(); if(tmp->left&&!isV){ tree.push(tmp->left); isV=true; visited.push(isV); visited.push(false); continue; } tree.pop(); res.push_back(tmp->val); if(tmp->right){ tree.push(tmp->right); visited.push(false); } } return res; }};
愚蠢的代码,更新一个好一点的代码:
/** * 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> inorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> tree; TreeNode* p=root; while(!tree.empty()||p!=NULL){ while(p!=NULL){ tree.push(p); p=p->left; } if(!tree.empty()){ p=tree.top(); tree.pop(); res.push_back(p->val); p=p->right; } } return res; }};
0 0
- LeetCode 94. Binary Tree Inorder Traversal
- [LeetCode]94.Binary Tree Inorder Traversal
- 94. Binary Tree Inorder Traversal Leetcode Python
- [Leetcode] 94. Binary Tree Inorder Traversal
- LeetCode --- 94. Binary Tree Inorder Traversal
- LeetCode 94. Binary Tree Inorder Traversal
- [leetcode] 94.Binary Tree Inorder Traversal
- 94. Binary Tree Inorder Traversal LeetCode
- LeetCode 94. Binary Tree Inorder Traversal
- *LeetCode 94. Binary Tree Inorder Traversal
- [LeetCode]94. Binary Tree Inorder Traversal
- [LeetCode]94. Binary Tree Inorder Traversal
- 【LeetCode】94. Binary Tree Inorder Traversal
- leetcode 94. Binary Tree Inorder Traversal
- leetcode 94. Binary Tree Inorder Traversal
- LeetCode *** 94. Binary Tree Inorder Traversal
- LeetCode-94.Binary Tree Inorder Traversal
- LeetCode 94. Binary Tree Inorder Traversal
- 51nod 1272 最大距离 (单调栈)
- 双重指针的用法
- h264协议帧头数据解析
- Xamarin 免费了,你能做什么?
- BZOJ1787: [Ahoi2008]Meet 紧急集合(LCA)
- LeetCode *** 94. Binary Tree Inorder Traversal
- listview一键返回顶部悬浮按钮
- 友元函数第一次运用输出时间值
- sklearn基础知识-准备阶段
- iOS 键盘遮挡问题
- 【HDU 2670】【背包】Girl Love Value
- 【JS】:JS做的一个闹钟
- Oracle中的文件类型
- 六款值得推荐的android(安卓)开源框架简介