链接二叉树中同一层的节点
来源:互联网 发布:淘宝不能发布护肤品 编辑:程序博客网 时间:2024/05/21 06:13
这个题目之前做过了,但是由于思路不清晰,今天思路又卡了
比如:
0
1 2
3 4 5
6 7
1->2
3->4->5
6->7
参考数据结构:
struct TREE_NODE
{
TREE_NODE(int n) : nVal(n), pLft(NULL), pRgt(NULL), pSib(NULL)
{}
int nVal;
TREE_NODE* pLft;
TREE_NODE* pRgt;
TREE_NODE* pSib;
};
对于每一个节点tnode,都要将其左右节点链接。如果没有右节点,则就要找和tnode同一层的节点,直到找到一个节点有左孩子或者右孩子,返回这个节点的孩子。
有一个问题要解决,在找和tnode同层的节点的孩子节点,必须保证tnode同层的所有节点已经链接了,用先左再右的递归不行,所以要用从右到左的递归。
TREE_NODE *find_next(TREE_NODE *root){ while(root = root->pSib) { if(root->pLft || root->pRgt) return root->pLft?root->pLft:root->pRgt; } return NULL;}void LinkLevelNodes(TREE_NODE *root){ if(!root) return ; if(root->pLft) root->pLft->pSib = root->pRgt?root->pRgt:find_next(root); if(root->pRgt) root->pRgt->pSib = find_next(root); LinkLevelNodes(root->pRgt); LinkLevelNodes(root->pLft);}
- 链接二叉树中同一层的节点
- 不用额外空间,链接二叉树同一层的每个node
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 淘宝笔试题:一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL
- 完全二叉树指向同一层的相邻结点
- 输入一颗二元树,从上向下按层打印树的每个节点,同一层中,按照从左到右的顺序打印。
- 输入一颗二元树,从上向下按层打印树的每个节点,同一层中,按照从左到右的顺序打印。
- 二叉树的叶子节点、第K层节点/数组中数字次数超过数组长度的一般
- 输出二叉树中,第m层的第k个节点值
- java面试题:如何求二叉树中节点的最大距离+层序遍历
- 二叉树的中序、先序、后序、层序遍历 & 二叉树的深度 & 节点查找
- 求二叉树叶子节点的个数+求二叉树第k层的节点个数
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数
- 求二叉树的节点个数、叶子节点个数、第k层的节点个数
- 求二叉树中叶子节点个数,总的节点个数,第K层的节点个数
- day10之求二叉树叶子节点的个数+求二叉树第k层的节点个数+数组中超过一半的数字
- 初级->图算法->最短路径 poj 2240 Arbitrage
- windows无法启动mysql服务,错误提示1067
- CityEngine技术公开课第一讲学习资源整理
- freeswith 和dobuango rtcp 选项 RTCP-MUX 问题
- Android中实现非本地图片的点击态
- 链接二叉树中同一层的节点
- Linux下hello.ko内核模块制作的全过程
- c# 使用定时器Timer
- CityEngine关联GIS数据属性信息
- Yii-模块- 后台登录实现方法
- CityEngine规则中变量的定义和显示
- Apache Tuscany SCA入门
- 诡异的 Alt+/
- 图像学习