继计数器变量是2码: 1.查找二叉查找树的第k个最小整数:递归和在二叉树
void FindKthSmallest(struct TreeNode* root, int& k)
{
if (root == NULL) return;
if (k == 0) return; // k==0 means target node has been found
FindKthSmallest (root->left, k);
if (k > 0) // k==0 means target node has been found
{
k--;
if (k == 0) { // target node is current node
cout << root->data;
return;
} else {
FindKthSmallest (root->right, k);
}
}
}
查找节点的二进制树编号:
int Size (struct TreeNode* root) { if (root == NULL) return 0; int l = Size (root->left); int r = Size (root->right); return (l+r+1); }
我的问题: 在这两个代码,我会跟踪我访问节点的数量。为什么是它的代码1,需要通过引用传递一个参数来跟踪我访问节点的数量,而代码2不要求按引用传递任何变量?