有一个排序二叉树,数据类型是int型,如何找出中间大的元素。
2017-01-15 12:05
393 查看
void tree2Dll(TNode* root, TNode*& tail) { if (!root) { return; } if (root->left) { tree2Dll(root->left, tail); } TNode* tmp = root; tmp->left = tail; if (tail) { tail->right = tmp; } tail = tmp; if (root->right) { tree2Dll(root->right, tail); } } int findMedian(TNode* tail) { if (!tail) { return INT_MAX; } TNode* fast = tail; TNode* slow = tail; while (fast && slow) { if (!(fast->left)) { return slow->data; } else if (fast->left && !(fast->left->left)) { return (slow->data + slow->left->data) >> 1; } else { slow = slow->left; fast = fast->left->left; } } }
相关文章推荐
- 有一个排序二叉树,数据类型是int型,如何找出中间大的元素。
- 一个有头尾的单链表,长度未知,如何快速的找出位于中间的那个元素?
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 数据表中有字段time(类型为varchar),如何通过sql语句找出这个字段里力离当前最近的一个日期
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 百度面试题:一个单链表,长度未知,如何快速的找出位于中间的那个元素
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- python中如何判断一个变量的数据类型?(原创)
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 四道有趣的单链表面试题(单链表反序、找出链表的中间元素、链表排序、判断一个单链表是否有环) (转)
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何构造一个元素类型为Struct的SafeArray
- 如何将QString转换为binary数据类型!每两个字符转换为一个binary