1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Node* __insert2(Node* node, Key key, Value value){ Node* tmpNode = node; while ( true ){ if (tmpNode == NULL){ tmpNode = new Node(key, value); count++; break ; } if ( key == tmpNode->key) tmpNode->value = value; break ; if ( key < tmpNode->key ) tmpNode = tmpNode->left; else tmpNode = tmpNode->right; } return tmpNode; // 这里应该 return tmpNode 还是 node 本身? } |
这是我理解的非递归实现,但是总感觉有什么不对,还请老师指点(我看了一下后面的测试用例,一步步调试还是没搞清楚最后 return 的 node 应该是哪一个)