考研数据结构(每日一题) 题目:假设二叉树采用二叉链表结构存储,设计一个算法,求二叉树中值为x的层号。 算法思想: 遍历 定义一个p指针,要明确向左走层数+1,当返回时,层数要-1。关键是要知道什么时候层数加一,什么时候层数减一。 完整代码: void fun(BTNode *p,int x){ int h = 1; if (p != NULL) { if (p -> data == x) //遍历 { printf("%d",h); } ++ h; fun(p -> lchild,x); fun(p -> rchild,x); -- h; } }