本文主要是介绍leetcode 094 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? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1/ \2 3/4\5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.
Subscribe to see which companies asked this question
class Solution {
public:void inOrder(TreeNode* root, vector<int> &res) {if(root!=NULL) {inOrder(root->left, res);res.push_back(root->val);inOrder(root->right, res);}return;}vector<int> inorderTraversal(TreeNode* root) {vector<int> res;stack<TreeNode*> s;if(root==NULL) return res;s.push(root);while(!s.empty()) {TreeNode *temp = s.top();if(temp->left!=NULL) {s.push(temp->left);temp->left=NULL;} else {s.pop();res.push_back(temp->val);if(temp->right!=NULL) {s.push(temp->right);}}}return res;}
}
这篇关于leetcode 094 Binary Tree Inorder Traversal的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!