C++ NC161二叉树的中序遍历
中序遍历是指:左子节点→根节点→右子节点的方式遍历二叉树。
用循环的方法进行中序遍历
vector<int> inorderTraversal(TreeNode* root) { stack<TreeNode*> stk;//暂存树节点的栈 vector<int> result;//存放结果 TreeNode* p = root;//指向当前树节点地址的指针 while (p || !stk.empty()) { while (p)//找到当前未加入栈的最左端树节点 { stk.push(p); p = p->left; } if (!stk.empty())//从栈中取出节点 { p = stk.top(); stk.pop(); result.push_back(p->val); p = p->right; } } return result; }