【数据结构——树】二叉树面试相关知识点总结(二)

来源:互联网 发布:dnf数据芯片会涨价吗 编辑:程序博客网 时间:2024/06/06 20:50

11.求二叉树第K层的节点个数
13. 由前序遍历序列和中序遍历序列重建二叉树
14. 求二叉树中两个节点的最低公共祖先节点
15. 求二叉树中节点的最大距离
16.二叉树的非递归实现

17.二叉查找树

11.将二叉查找树变为有序的双向链表

18.伸展树

19.B树


【11】求二叉树第K层节点个数

递归解法:
(1)如果二叉树为空或者k<1返回0
(2)如果二叉树不为空并且k==1,返回1
(3)如果二叉树不为空且k>1,返回左子树中k-1层的节点个数与右子树k-1层节点个数之和

<span style="font-size:12px;color:#333333;">/*************求二叉树第k层的节点个数**************/int GetNodeNumKthLevel(BiTreeNode* &T,int k){if(k == 0 || T == NULL)return 0;if(k == 1) return 1;int numleft = GetNodeNumKthLevel(T->lchild,k-1);//左子树中K-1层的节点个数int numright = GetNodeNumKthLevel(T->rchild,k-1);//左子树中K-1层的节点个数return(numleft + numright);}</span>


[15]节点的最大距离

递归解法:

1.根节点高度为0,每经过一个节点,树的高度加1,递归遍历,返回左右子树中的最大值

2.每次遍历更新节点间的最大距离


int tree_hight(BiTreeNode* pRoot,int& maxLen){if(pRoot == NULL) return -1;int pLeftLen = tree_hight(pRoot->pLeft,maxLen) +1;int pRightLen= tree_hight(pRoot->pRight,maxLen) +1;maxLen = max(pLeftLen + pRightLen,maxLen);return pLeftLen > pRightLen ? pLeftLen : pRightLen; }


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 生气就像打人怎么办 小孩总喜欢打人怎么办 小孩性格好翘怎么办 一岁小宝宝打人怎么办 小孩子老喜欢打人怎么办 孩子被大人欺负怎么办 小孩识字量少怎么办 父母打架孩子该怎么办 小孩嘴唇里面烂怎么办 幼儿园小朋友很调皮怎么办 幼儿园小朋友上课调皮怎么办 孩子误冲游戏怎么办 遇到别的熊孩子怎么办 幼儿园遇到熊孩子怎么办 高铁上遇到熊孩子怎么办 幼儿爱打人家长怎么办 妈妈爱打孩子怎么办 35儿童爱打人怎么办? 一岁半宝宝太调皮怎么办 儿子高一不听话怎么办 小孩说了不听话怎么办 我的妈妈文盲怎么办 电脑键盘反拼音怎么办 小孩学习态度差怎么办 孩子不好好上学怎么办 小孩读书态度不好怎么办 幼儿园孩子不认识数字怎么办 一年级孩子拼音很差怎么办 孩子的拼音不好怎么办 小孩不会拼拼音怎么办 小孩拼音学不会怎么办 儿童l发音不准怎么办 小孩发音不标准怎么办 拼音l发音不准怎么办 孩子拼音声调分不清怎么办 小孩gk读成dt怎么办 拼音音调学不会怎么办 会拼音不会打字怎么办 大人拼音学不会怎么办 志愿服务经历少怎么办 医保报销发票丢失怎么办