前序遍历和中序遍历的模版,记住它你的人生是彩色的
二叉搜索树的第k个结点
http://www.nowcoder.com/questionTerminal/ef068f602dde4d28aab2b210e859150a
中序遍历
TreeNode* KthNode(TreeNode* head, int k){
std::stack<TreeNode*> mstck;
TreeNode* curr = head;
while(curr || !mstck.empty()){
while(curr){
mstck.push(curr);
curr = curr->left;
}
if(--k == 0)
return mstck.top();
//访问节点
curr = mstck.top()->right;
mstck.pop();
}
return nullptr;
}前序遍历
TreeNode* KthNode(TreeNode* head, int k){
std::stack<TreeNode*> mstck;
TreeNode* curr = head;
while(curr || !mstck.empty()){
while(curr){
//访问节点
mstck.push(curr);
curr = curr->left;
}
.........................
curr = mstck.top()->right;
mstck.pop();
}
return nullptr;
}
查看3道真题和解析
