二叉树的中序遍历
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
示例 1:
输入:root = [1,null,2,3]
输出:[1,3,2]
//首先定义树的结构,Definition for a binary tree node.
struct TreeNode{
int val;
TreeNode *left;//定义树的左节点属性
TreeNode *right;
TreeNode(): val(0),left(nullptr),right(nullptr){}
TreeNode(int x):val(x),left(nullptr),right(nullptr){}
TreeNode(int x,TreeNode *left,Tree *right):val(x),left(left),right(right){}
};
class Solution{
pubilc:
vector<int> inorderTraversal(TreeNode* root){
if(!root) return{};
vector<int> ans;
stack<TreeNode*> s;
TreeNode *crrent=root;
while(current||s.empty()){
while(current){
s.push(current);
current=current->left;
}
TreeNode *node=s.top;
ans.push_back(node->val);
s.pop(node);
crrent=node->right;
}
}
return ans;
}