由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 面试的时候 binary tree的delete也要15分钟之内写完么?
相关主题
问一个问题: binary search Tree的删除用java实现。150上这个是不是不对? (转载)
问个二叉树删除结点的问题How can one determine whether a singly linked list has a cycle?
一道题:2个BST,按大小顺序打印两棵树的所有节点报Google Offer并请教面试题
发现一个很恶心的基础问题LCA复杂度是多少
help: leetcode "Recover Binary Search Tree" -- 附代码LCA复杂度
哪位大牛能给贴个tri-nary search tree的delete的code?MS onsite面经
问一个题目自己写了个graph的class但是不work 求指点
A onsite被拒,面经,求分析失败原因Recover Binary Search Tree:以前的解法通不过了
相关话题的讨论汇总
话题: tree话题: node话题: tmpnode话题: else话题: null
进入JobHunting版参与讨论
1 (共1页)
C***U
发帖数: 2406
1
算法还好的 但是写起来 觉得这个有点难啊 时间不够用啊
j*****n
发帖数: 1545
2
多练 没其他办法
r*****e
发帖数: 792
3
这个现场写够呛,只能实行练过才行啊。
写过一次,挺麻烦的,尤其是没有parent ptr时就更麻烦。

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

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

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

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

ptr

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

X*K
发帖数: 87
7
15分钟是怎么个说法?记得CRLS里面定义了一个transplant函数,这样会容易一些。
p*****2
发帖数: 21240
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
r*****e
发帖数: 792
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:

p*****2
发帖数: 21240
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

d********g
发帖数: 10550
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:

p*****2
发帖数: 21240
12

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

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

C***U
发帖数: 2406
13
膜拜大牛!

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

K*********n
发帖数: 2852
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:

1 (共1页)
进入JobHunting版参与讨论
相关主题
Recover Binary Search Tree:以前的解法通不过了help: leetcode "Recover Binary Search Tree" -- 附代码
Google onsite前有两轮电面?哪位大牛能给贴个tri-nary search tree的delete的code?
请问LOWEST COMMON ANCESTOR OF A BINARY TREE, treenode 只有parent,没有left,right问一个题目
Lowest common ancestor of two nodes of Binary TreeA onsite被拒,面经,求分析失败原因
问一个问题: binary search Tree的删除用java实现。150上这个是不是不对? (转载)
问个二叉树删除结点的问题How can one determine whether a singly linked list has a cycle?
一道题:2个BST,按大小顺序打印两棵树的所有节点报Google Offer并请教面试题
发现一个很恶心的基础问题LCA复杂度是多少
相关话题的讨论汇总
话题: tree话题: node话题: tmpnode话题: else话题: null