Redian新闻
>
面试的时候 binary tree的delete也要15分钟之内写完么?
avatar
面试的时候 binary tree的delete也要15分钟之内写完么?# JobHunting - 待字闺中
C*U
1
算法还好的 但是写起来 觉得这个有点难啊 时间不够用啊
avatar
j*n
2
多练 没其他办法
avatar
r*e
3
这个现场写够呛,只能实行练过才行啊。
写过一次,挺麻烦的,尤其是没有parent ptr时就更麻烦。

【在 C***U 的大作中提到】
: 算法还好的 但是写起来 觉得这个有点难啊 时间不够用啊
avatar
C*U
4
我写了半天才写出来。 感觉面试问这个就够呛了

这个现场写够呛,只能实行练过才行啊。写过一次,挺麻烦的,尤其是没有parent ptr
时就更麻烦。
★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite

【在 r*****e 的大作中提到】
: 这个现场写够呛,只能实行练过才行啊。
: 写过一次,挺麻烦的,尤其是没有parent ptr时就更麻烦。

avatar
p*2
5
只是binary tree吗?
我准备写一个。应该10几行代码能搞定把?
avatar
w*b
6
多练才是王道,你要觉得麻烦那说明你还是写的少了。。。

ptr

【在 C***U 的大作中提到】
: 我写了半天才写出来。 感觉面试问这个就够呛了
:
: 这个现场写够呛,只能实行练过才行啊。写过一次,挺麻烦的,尤其是没有parent ptr
: 时就更麻烦。
: ★ Sent from iPhone App: iReader Mitbbs 7.56 - iPad Lite

avatar
X*K
7
15分钟是怎么个说法?记得CRLS里面定义了一个transplant函数,这样会容易一些。
avatar
p*2
8
我写了一个
def merge(node1, node2):
if node1==None or node2==None:
return node1 if node2==None else node2
node1.right=merge(node2,node1.right)
return node1
def delete(root, node):
if root==None:
return None
elif root==node:
return merge(node.left,node.right)
else:
root.left=delete(root.left,node)
root.right=delete(root.right,node)
return root
avatar
r*e
9
is it so simple with python? or is it right? ;-)
i believe deletion of bst involves finding successor, rotate, etc.
admire first

【在 p*****2 的大作中提到】
: 我写了一个
: def merge(node1, node2):
: if node1==None or node2==None:
: return node1 if node2==None else node2
: node1.right=merge(node2,node1.right)
: return node1
: def delete(root, node):
: if root==None:
: return None
: elif root==node:

avatar
p*2
10

这题不是BST,只是BT

【在 r*****e 的大作中提到】
: is it so simple with python? or is it right? ;-)
: i believe deletion of bst involves finding successor, rotate, etc.
: admire first

avatar
d*g
11
赞Python
不过PEP8一查,哀鸿遍野。遇到吹毛求疵的考官还要注意一下格式才行

【在 p*****2 的大作中提到】
: 我写了一个
: def merge(node1, node2):
: if node1==None or node2==None:
: return node1 if node2==None else node2
: node1.right=merge(node2,node1.right)
: return node1
: def delete(root, node):
: if root==None:
: return None
: elif root==node:

avatar
p*2
12

我面试用Java的。Python就是随便玩玩。

【在 d********g 的大作中提到】
: 赞Python
: 不过PEP8一查,哀鸿遍野。遇到吹毛求疵的考官还要注意一下格式才行

avatar
C*U
13
膜拜大牛!

【在 p*****2 的大作中提到】
:
: 我面试用Java的。Python就是随便玩玩。

avatar
K*n
14
我也写了一个C的:
Node *del(Node *tree, int n){
Node *tmpNode;
if (tree == NULL)
perror("Element not found.");
else if (tree -> val > n) // go left
tree -> left = del(tree -> left, n);
else if (tree -> val < n)
tree -> right = del(tree -> right, n);
else{ // found n
if (tree -> left && tree -> right){ // two children
tmpNode = findMin(tree -> right);
tree -> val = tmpNode -> val;
tree -> right = del(tree -> right, tmpNode -> val);
}else{ // one or zero child
tmpNode = tree;
if (tree -> left == NULL)
tree = tree -> right;
else if (tree -> right == NULL)
tree = tree -> left;
free(tmpNode);
}
}

return tree;
}
Node *findMin(Node *tree){
if (tree == NULL)
return NLLL;
else if (tree -> left == NULL)
return tree;
else
return findMin(tree -> left);
}

【在 p*****2 的大作中提到】
: 我写了一个
: def merge(node1, node2):
: if node1==None or node2==None:
: return node1 if node2==None else node2
: node1.right=merge(node2,node1.right)
: return node1
: def delete(root, node):
: if root==None:
: return None
: elif root==node:

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。