由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 算法题:合并两个排序二叉树
相关主题
老纳跟风顶风作案,贡献一道g家上周的题目问一道题
面试中举例常见的高效排序算法, 为什么都举quicksort和mergesort, 很少说heapsort呢merge two binary search tree
二叉树按层次打印有没有办法换行显示?一个特别的inplace merge two sorted arrays
一道二叉树的老题算法题:min heap inplace变 BST
求问把二叉树的recursive遍历改为stack实现的思路问个array in place operation的题目
请教一道g算法题A家店面第一次 攒人品
面试题也上一道算法题了(俺的版权了:))
二叉树最长路径 用 level order travel 做?请教一个C++问题
相关话题的讨论汇总
话题: cur话题: root话题: right话题: node话题: left
进入JobHunting版参与讨论
1 (共1页)
q****x
发帖数: 7404
1
有没有可能inplace?
1. 利用二叉树指针空间,把二叉树转成两个排序双链表。
2. 合并两个链表。
3. 将排序双链表转成二叉树。
不过这样似乎很无聊。时间O(nlogn)空间O(1),和一个个插入一回事。
g*********8
发帖数: 64
2
好像见过几个面试题要求inplace,我只能想出一样的解法了
s******n
发帖数: 3946
3
应该充分利用排序的特性,假设第二颗树序列为n1,n2,n3....
n1插入第一颗树后,n2不用从顶端开始查,可以从n1插入位置开始向上搜索(前提是每
个node都有parent指针)
s******n
发帖数: 226
4
void merge(node* root1, node* root2){
int count =0;
node* cur = root1;
for(;cur;cur = cur->right, count++)
while(rightRotate(cur));
cur = root2;
for(;cur;cur = cur->right, count++)
while(rightRotate(cur));
// Merge 2 linked list in place
for(int i=count/2;i;i = i/2){
cur = root;
for(int j=0;j leftRotate(cur);
cur = cur->right;
}
}
}
l*****n
发帖数: 577
5
what does right/leftRotate do?

【在 s******n 的大作中提到】
: void merge(node* root1, node* root2){
: int count =0;
: node* cur = root1;
: for(;cur;cur = cur->right, count++)
: while(rightRotate(cur));
: cur = root2;
: for(;cur;cur = cur->right, count++)
: while(rightRotate(cur));
: // Merge 2 linked list in place
: for(int i=count/2;i;i = i/2){

s******n
发帖数: 226
6
Left rotate
bool left(node* root){
If !root or !root-right
Return 0
Node* n = root-right
Root-right = n-right
N-right = n-left
N-left = root-left
Root-left = n
Swap n and root's Val
Return 1
Right rotate similar
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一个C++问题求问把二叉树的recursive遍历改为stack实现的思路
请教一题算法小问题请教一道g算法题
Lowest Common Ancestor面试题
关于Inplace排序栈元素的解法?二叉树最长路径 用 level order travel 做?
老纳跟风顶风作案,贡献一道g家上周的题目问一道题
面试中举例常见的高效排序算法, 为什么都举quicksort和mergesort, 很少说heapsort呢merge two binary search tree
二叉树按层次打印有没有办法换行显示?一个特别的inplace merge two sorted arrays
一道二叉树的老题算法题:min heap inplace变 BST
相关话题的讨论汇总
话题: cur话题: root话题: right话题: node话题: left