首页 > 代码库 > Leetcode Binary Tree Inorder Traversal
Leetcode Binary Tree Inorder Traversal
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?
confused what "{1,#,2,3}"
means?
递归解决方案
class Solution {public: vector<int> res; void inorder(TreeNode* root){ if(root == NULL) return; inorder(root->left); res.push_back(root->val); inorder(root->right); } vector<int> inorderTraversal(TreeNode *root) { inorder(root); return res; }};
非递归解决方案
class Solution {public: vector<int> inorderTraversal(TreeNode *root) { vector<int> res; if(root == NULL) return res; stack<TreeNode *> nodeStack; TreeNode *current = root; while(!nodeStack.empty() || current ){ if(current != NULL){ nodeStack.push(current); current = current->left; }else{ current = nodeStack.top();nodeStack.pop(); res.push_back(current->val); current = current->right; } } return res; }};
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。