若一颗二叉树的前序遍历为a,e,b,d,c,后序遍历为b,c,d,e,a,则根节点的孩子节点()
A.只有e
B.有e,b
C.有e,c
D.不确定
正确答案是 A
感谢,这种刷题式的学习方式真的很方便!
技多不压身
java感觉有点难,前端咋样,好学么
正在研究redis,感谢,太赞了!!!!!
根据树的前序和后序序列不能唯一确定二叉树,所以这里只能假设。而且节点比较少容易观察,对比这两个序列,可以将其分为两组,前序:(a,e)(b,d,c)后续:(b,c,d)(a,e)这两组,可以看出e为a的孩子节点,但是不能确定是左孩子还是右孩子;b,c为d的孩子节点。
答案:A前序遍历第一个是根节点,所以a是根节点假设a有两个孩子节点,则前序遍历a后面为e,所以e必定属于a的左子树中的节点后续遍历中a的前面挨着是e,所以e必定是a的右子树中的节点,相互矛盾。因此a只有一个孩子节点。在a只有一个孩子节点,也就是只有左子树或者只有右子树的情况下,前序遍历首先是根节点a,然后紧接着就是子树的跟节点,也就是a的唯一的孩子节点,所以e是a的子节点。
多线程中sleep()和wait()方法的区别
一棵具有n个结点的二叉树,若它有m个叶子结点,则该二叉树中度为1的结点个数是多少?
什么是 Cookie?它的作用是什么?
如果你是一个100w日活的UGC短视频APP产品经理,你觉得此时是做分享视频打水印重要,还是优化播放器让视频播放更加顺畅重要?
感谢,这种刷题式的学习方式真的很方便!
技多不压身
java感觉有点难,前端咋样,好学么
正在研究redis,感谢,太赞了!!!!!
根据树的前序和后序序列不能唯一确定二叉树,所以这里只能假设。而且节点比较少容易观察,对比这两个序列,可以将其分为两组,前序:(a,e)(b,d,c)后续:(b,c,d)(a,e)这两组,可以看出e为a的孩子节点,但是不能确定是左孩子还是右孩子;b,c为d的孩子节点。
答案:A
前序遍历第一个是根节点,所以a是根节点
假设a有两个孩子节点,则前序遍历a后面为e,所以e必定属于a的左子树中的节点
后续遍历中a的前面挨着是e,所以e必定是a的右子树中的节点,相互矛盾。
因此a只有一个孩子节点。
在a只有一个孩子节点,也就是只有左子树或者只有右子树的情况下,前序遍历首先是根节点a,然后紧接着就是子树的跟节点,也就是a的唯一的孩子节点,所以e是a的子节点。