博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(算法)二叉树的第m层第k个节点
阅读量:5298 次
发布时间:2019-06-14

本文共 928 字,大约阅读时间需要 3 分钟。

题目:

给定以下二叉树:

struct node

{

    node *left, *right;

    int value;

};

要求编写函数 node* foo(node *node, unsigned int m, unsigned int k);

输出以 node 为根的二叉树第 m 层的第 k 个节点值.(level, k 均从 0 开始计数)

注意:

此树不是完全二叉树;

所谓的第K个节点,是本层中从左到右的第K个节点

思路:

广度优先遍历,即层次遍历,通过队列来实现。

代码:

struct node{    node *left, *right;    int value;};node* foo(node *pRoot, unsigned int m, unsigned int k){    if(pRoot==NULL)        return NULL;    queue
tQueue; tQueue.push(pRoot); unsigned int total=1; while(m>1){ if(total==0) return NULL; while(total>0){ node* cur=tQueue.front(); tQueue.pop(); total--; if(cur->left!=NULL) tQueue.push(cur->left); if(cur->right!=NULL) tQueue.push(cur->right); } total=tQueue.size(); m--; } if(total>=k){ for(unsigned int i=0;i

转载于:https://www.cnblogs.com/AndyJee/p/4712699.html

你可能感兴趣的文章
动态规划 例子与复杂度
查看>>
查看oracle数据库的连接数以及用户
查看>>
【数据结构】栈结构操作示例
查看>>
中建项目环境迁移说明
查看>>
三.野指针和free
查看>>
activemq5.14+zookeeper3.4.9实现高可用
查看>>
TCP/IP详解学习笔记(3)IP协议ARP协议和RARP协议
查看>>
简单【用户输入验证】
查看>>
python tkinter GUI绘制,以及点击更新显示图片
查看>>
HDU4405--Aeroplane chess(概率dp)
查看>>
CS0103: The name ‘Scripts’ does not exist in the current context解决方法
查看>>
20130330java基础学习笔记-语句_for循环嵌套练习2
查看>>
Spring面试题
查看>>
窥视SP2010--第一章节--SP2010开发者路线图
查看>>
MVC,MVP 和 MVVM 的图示,区别
查看>>
C语言栈的实现
查看>>
代码为什么需要重构
查看>>
TC SRM 593 DIV1 250
查看>>
SRM 628 DIV2
查看>>
2018-2019-2 20165314『网络对抗技术』Exp5:MSF基础应用
查看>>