Redian新闻
>
Tree的traversal也分BFS和DFS?
avatar
Tree的traversal也分BFS和DFS?# JobHunting - 待字闺中
d*t
1
G家猎头发的知识要点里的。恕我非科班出身,只见过Graph的BFS和DFS。
avatar
h*7
2
BFS就是level order
DFS就是前序 中序 后序 是吧
avatar
b*u
3
tree is an acyclic graph

【在 d********t 的大作中提到】
: G家猎头发的知识要点里的。恕我非科班出身,只见过Graph的BFS和DFS。
avatar
d*t
4
能详细说一下吗?以前真的没见过。

【在 b*****u 的大作中提到】
: tree is an acyclic graph
avatar
m*j
5

tree就是graph的一种,无向无环图
所以graph的BFS跟DFS拿到tree上直接跑

【在 d********t 的大作中提到】
: 能详细说一下吗?以前真的没见过。
avatar
d*t
6
有use case吗?比如为啥不用in order要用BFS或DFS呢?

【在 m**********j 的大作中提到】
:
: tree就是graph的一种,无向无环图
: 所以graph的BFS跟DFS拿到tree上直接跑

avatar
b*u
7
具体原理记得不太清楚了,但是直观上应该和节点的结构有关。
比如每个节点只有指向孩子节点的指针,root 已知,就不太好Inorder
关于dfs vs. bfs 马上能想到的一个例子是华容道, 给定一个开始pattern和一个结束
pattern,求路径,比较靠谱的办法是从两端开始同时进行bfs,在中间相遇。

【在 d********t 的大作中提到】
: 有use case吗?比如为啥不用in order要用BFS或DFS呢?
avatar
l*a
8
牛啊
顺利通过店面了?

【在 d********t 的大作中提到】
: G家猎头发的知识要点里的。恕我非科班出身,只见过Graph的BFS和DFS。
avatar
l*a
9
递归就是DFS ah

【在 d********t 的大作中提到】
: 能详细说一下吗?以前真的没见过。
avatar
d*t
10
不牛,碰巧免电面而已。

【在 l*****a 的大作中提到】
: 牛啊
: 顺利通过店面了?

avatar
d*t
11


【在 l*****a 的大作中提到】
: 递归就是DFS ah
avatar
l*a
12
看来背景强啊
NYC office?

【在 d********t 的大作中提到】
: 不牛,碰巧免电面而已。
avatar
d*t
13
mountain view

【在 l*****a 的大作中提到】
: 看来背景强啊
: NYC office?

avatar
l*a
14
去总部混,更牛

【在 d********t 的大作中提到】
: mountain view
avatar
d*t
15
其实NYC和Boston僧多粥少难进多了。

【在 l*****a 的大作中提到】
: 去总部混,更牛
avatar
f*w
16
树就是图的一种啊,为什么不能BFS, DFS
你说说一个树和一个有向图在表现形式上有什么区别?
BFS就是level order
DFS的话可以是inorder, preorder, postorder
avatar
d*t
17
Thanks!

【在 f*******w 的大作中提到】
: 树就是图的一种啊,为什么不能BFS, DFS
: 你说说一个树和一个有向图在表现形式上有什么区别?
: BFS就是level order
: DFS的话可以是inorder, preorder, postorder

avatar
p*n
18
DFS的话可以是inorder, preorder, postorder????
求解释DFS怎么in order 和post order。。。。。。

【在 f*******w 的大作中提到】
: 树就是图的一种啊,为什么不能BFS, DFS
: 你说说一个树和一个有向图在表现形式上有什么区别?
: BFS就是level order
: DFS的话可以是inorder, preorder, postorder

avatar
r*g
19
public ArrayList inorderTraversal(TreeNode root) {
ArrayList result = new ArrayList();
traverse(result, root);
return result;
}

private void traverse(ArrayList result, TreeNode root) {
if (root == null) {
return;
}
traverse(result, root.left);
result.add(root.val);
traverse(result, root.right);
}
post order和order就改最后三行的顺序。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。