LeetCode 94: Binary Tree Inorder Traversal
来源:互联网 发布:java好学吗 编辑:程序博客网 时间:2024/06/05 01:04
Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes’ values.
For example:
Given binary tree {1,#,2,3}
,
return [1,3,2]
.
Note: Recursive solution is trivial, could you do it iteratively?
解题思路
中序遍历二叉树。
思路一:使用递归(recursion)。代码如下:
/** * 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 {private: void inorderTraversal(TreeNode *root, vector<int> &result) { if (root == NULL) return; // 递归结束 // 递归访问 root 的左子树 inorderTraversal(root->left, result); // 访问 root 结点 result.push_back(root->val); // 递归访问 root 的右子树 inorderTraversal(root->right, result); }public: vector<int> inorderTraversal(TreeNode* root) { vector<int> result; inorderTraversal(root, result); return result; }};
思路二:利用栈(stack)进行迭代(iteration)。代码如下:
/** * 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> result; if (root == NULL) return result; // 使用栈保存结点的访问路径 stack<TreeNode *> nodeStack; TreeNode *p = root; while (p != NULL || !nodeStack.empty()) { while (p != NULL) { nodeStack.push(p); p = p->left; } if (!nodeStack.empty()) { p = nodeStack.top(); nodeStack.pop(); result.push_back(p->val); p = p->right; } } return result; }};
0 0
- [leetcode 94] Binary Tree Inorder Traversal
- Leetcode NO.94 Binary Tree Inorder Traversal
- leetcode-94 Binary Tree Inorder Traversal
- leetcode || 94、Binary Tree Inorder Traversal
- Binary Tree Inorder Traversal - LeetCode 94
- 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(c++)
- leetcode-94:Binary Tree Inorder Traversal (Java)
- 【LeetCode】(94)Binary Tree Inorder Traversal(Easy)
- leetcode: (94) Binary Tree Inorder Traversal
- leetCode #94 Binary Tree Inorder Traversal
- Virtualbox WDDM之DxgkDdiGetStandardAllocationDriverData
- sde数据无法编辑的问题
- mysql大数据高并发处理
- JVM运行时内存结构
- Spring Security教程(9)---- 自定义AccessDeniedHandler
- LeetCode 94: Binary Tree Inorder Traversal
- Linux 系统中僵尸进程
- OC字典 OC数组 OC字符串
- Spring Security教程(10)---- 自定义登录成功后的处理程序及修改默认验证地址
- Oracle RAC 11.2.0.4打PSU
- Android带日程安排的自定义日历控件
- Spring Security教程(11)---- 使用数据库来管理资源
- Web缓存机制浅析
- 微信公众平台新增图片上传接口 将自动过滤外链图片