“常用公式”在线计算,“设计手册”在线查询
用递归和循环两种方法完成树的镜像转换。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入:8/ \6 10/\ /\5 7 9 11输出:8/ \10 6/\ /\11 9 7 5定义二元查找树的结点为:struct BSTreeNode // a node in the binary search tree (BST){int m_nValue; // value of nodeBSTreeNode *m_pLeft; // left child of nodeBSTreeNode *m_pRight; // right child of node};
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 1 个关于本帖的回复 最后回复于 2013-8-16 11:10

沙发
秦静静 新来的 发表于 2013-8-16 11:10:41 | 只看该作者
研发埠培训中心
This isthe basic application of recursion.PS: I don’t like the m_xx naming convension.void swap(Node ** l, Node ** r) {  Node * p = *l;  *l = *r;  *r = p;}voidmirror(Node * root) {  if (root == NULL) return;  swap(&(root->left), &(root->right));  mirror(root->left);  mirror(root->right);}voidmirrorIteratively(Node * root) {  if (root == NULL) return;  stack<Node*> buf;  buf.push(root);  while (!stack.empty()) {    Node * n = stack.pop();    swap(&(root->left), &(root->right));    if (root->left != NULL) buf.push(root->left);    if (root->right != NULL) buf.push(root->right);  }}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台