1、利用栈
vector<int> inorderTraversal(TreeNode* root) {
vector<int> ans;
stack<TreeNode*> st;
TreeNode* cur = root;
while (!st.empty() || cur) {
while (cur) {
st.push(cur);
cur = cur->left;
}
cur = st.top();
st.pop();
ans.push_back(cur->val);
cur = cur->right;
}
return ans;
}
2、递归
3、建成另一种二叉树(应该和数据结构课上写过的一个树一样,原本为NULL的右节点指向中序遍历时的下一个节点)