每天一个编程题·iOS开发算法提升计划(1)
点击上方“iOS开发”,选择“置顶公众号”
关键时刻,第一时间送达!
先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明明只是灵武七重,而在这两个月不到的时间,连跳两重修为,又跳过一个大境界,踏入了元武一重,这般进步速度,简直堪称变态啊。
“这楚枫不简单,原来是一位天才,若是让他继续成长下去,绝对能成为一号人物,不过可惜,他太狂妄了,竟与龚师兄定下生死约战,一年时间,他再厉害也无法战胜龚师兄。”有人认识到楚枫的潜力后,为楚枫感到惋惜。
“哼,何须一年,此子今日就必败,巫九与龚师兄关系甚好,早就看他不顺眼了,如今他竟敢登上生死台挑战巫九,巫九岂会放过他?”但也有人认为,楚枫今日就已是在劫难逃。
“何人挑战老子?”就在这时,又是一声爆喝响起,而后一道身影自人群之中掠出,最后稳稳的落在了比斗台上。
这位身材瘦弱,身高平平,长得那叫一个猥琐,金钩鼻子蛤蟆眼,嘴巴一张牙带色儿,说话臭气能传三十米,他若是当面对谁哈口气,都能让那人跪在地上狂呕不止。
不过别看这位长得不咋地,他在核心地带可是鼎鼎有名,剑道盟创建者,青龙榜第九名,正是巫九是也。
“你就是巫九?”楚枫眼前一亮,第一次发现,世间还有长得如此奇葩的人。
巫九鼻孔一张,大嘴一咧,拍着那干瘪的肚子,得意洋洋的道:“老子就是巫九,你挑战老子?”
“不是挑战你,是要宰了你。”楚枫冷声笑道。
“好,老子满足你这个心愿,长老,拿张生死状来,老子今日在这里了解了这小子。”巫九扯开嗓子,对着下方吼了一声。
如果他对内门长老这么说话,也就算了,但是敢这么跟核心长老说话的,他可真是算作胆肥的,就连许多核心弟子,都是倒吸了一口凉气,心想这楚枫够狂,想不到这巫九更狂。
不过最让人无言的就是,巫九话音落下不久,真有一位核心长老自人群走出,缓缓得来到了比斗台上,左手端着笔墨,右手拿着生死状,来到了巫九的身前。
“我去,这巫九什么身份,竟能这般使唤核心长老?”有人吃惊不已,那长老修为不低,乃是元武七重,比巫九还要高两个层次,但却这般听巫九的话,着实让人吃惊不已。
“这你就不知道了吧,巫九在前些时日,拜了钟离长老为师尊,已正式得到钟离长老的亲传。”有人解释道。
“钟离长老?可是那位性情古怪的钟离一护?”
“没错,就是他。”
“天哪,巫九竟然拜入了他的门下?”
人们再次大吃一惊,那钟离一护在青龙宗可是赫赫有名,若要是论其个人实力,在青龙宗内绝对能够排入前三,连护宗六老单打独斗都不会是他的对手。
只不过那钟离一护,如同诸葛青云一样,也是一位客卿长老,所以在青龙宗内只是挂个头衔,什么事都不管,更别说传授宗内弟子技艺了,如今巫九竟然能拜入他老人家门下,着实让人羡慕不已。
“恩怨生死台,的确可以决斗生死,但必须要有所恩怨,你们两个人,可有恩怨?”那位长老开口询问道。
1. 题目
请实现一个函数,用来判断一棵二叉树是不是对称的:如果一颗二叉树和它的镜像一样,那么它是对称的。
2. 解析
两层节点:对称的情况分析
两个父节点的值对称(相等)
左父节点的左子节点与右父节点的右子节点对称
左父节点的右子节点与右父节点的左子节点对称
第三层节点:采用递归
根节点:根节点作为两个父节点进行输入
3. 参考
SymmetricalBinaryTree.cpp
include <cstdio>#include "../Utilities/BinaryTree.h"
bool isSymmetrical(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2);
bool isSymmetrical(BinaryTreeNode* pRoot){ return isSymmetrical(pRoot, pRoot);}
bool isSymmetrical(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2){ if(pRoot1 == nullptr && pRoot2 == nullptr) return true;
if(pRoot1 == nullptr || pRoot2 == nullptr) return false;
if(pRoot1->m_nValue != pRoot2->m_nValue) return false;
return isSymmetrical(pRoot1->m_pLeft, pRoot2->m_pRight) && isSymmetrical(pRoot1->m_pRight, pRoot2->m_pLeft);}
BinaryTree.cpp
#include <cstdio>#include "BinaryTree.h"
BinaryTreeNode* CreateBinaryTreeNode(int value){ BinaryTreeNode* pNode = new BinaryTreeNode(); pNode->m_nValue = value; pNode->m_pLeft = nullptr; pNode->m_pRight = nullptr;
return pNode;}
void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight){ if(pParent != nullptr) { pParent->m_pLeft = pLeft; pParent->m_pRight = pRight; }}
void PrintTreeNode(const BinaryTreeNode* pNode){ if(pNode != nullptr) { printf("value of this node is: %d
", pNode->m_nValue);
if(pNode->m_pLeft != nullptr) printf("value of its left child is: %d.
", pNode->m_pLeft->m_nValue); else printf("left child is nullptr.
");
if(pNode->m_pRight != nullptr) printf("value of its right child is: %d.
", pNode->m_pRight->m_nValue); else printf("right child is nullptr.
"); } else { printf("this node is nullptr.
"); }
printf("
");}
void PrintTree(const BinaryTreeNode* pRoot){ PrintTreeNode(pRoot);
if(pRoot != nullptr) { if(pRoot->m_pLeft != nullptr) PrintTree(pRoot->m_pLeft);
if(pRoot->m_pRight != nullptr) PrintTree(pRoot->m_pRight); }}
void DestroyTree(BinaryTreeNode* pRoot){ if(pRoot != nullptr) { BinaryTreeNode* pLeft = pRoot->m_pLeft; BinaryTreeNode* pRight = pRoot->m_pRight;
delete pRoot; pRoot = nullptr;
DestroyTree(pLeft); DestroyTree(pRight); }}
作者:陈满iOS
https://www.jianshu.com/p/e933f948c784
iOS开发整理发布,转载请联系作者获得授权
【点击成为源码大神】
每天一个编程题·iOS开发算法提升计划(1)相关推荐
- 不编程也开发13个无需编程的iOS开发工具
最近很多人都想自己开发iPhone软件, 但并非每个人都知道如何编写相关代码.还好,有很多工具可以帮助非开发人员创建自己的iPhone软件,甚至不需要编程和脚本知识.这些工具有的专为小公 司打造,有的 ...
- 中国电子学会图形化四级编程题:绳子算法
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 我们将有关编程题目的教学视频已经发布到抖 ...
- python字符串操作编程题_python开发基础02-字符串操作方法练习题
1.执行 Python 脚本的两种方式 python解释器 py文件 #!/usr/bin/env python 进入python解释器,便捷命令并执行 pycharm或其他pythonIDE sh ...
- java集合笔试编程题_Java 基础算法及编程笔试题集合
1. 斯诺克台球共有15个一分球,2,3,4,5,6,7分球各一个,规则是先打一个最低分球,然后可以打一个其他分值的球,如此反复,如果台面还有更低分值的球,打入的高分球计分,同时拿出来放回原位置,要求 ...
- 【王道数据结构编程题】- 二叉树算法题
目录 1.已知一颗二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为i和j的两个节点的最近的公共祖先节点的值. 2.编写后序遍历的二叉树的非递归算法 3.试给出二叉树的自下而上,从右到左的层次遍 ...
- 小甲鱼关于push,pop指令的一个编程题
编程: (1)将10000H~ 1000FH这段空间当作栈,初始状态是空的; (2)设置AX=001AH,BX=001BH ; (3)将AX.BX中的数据入栈; (4)然后将AX.BX清零; (5)从 ...
- iOS开发备战金三银四·头条三面记录
一面 一.自我介绍 简单介绍一下你自己吧 解析:简单介绍下自己的名字,教育背景,现在的工作,做过的项目 二.自我介绍衍生的口头问题 讲讲下你在你项目中做过的优化或者技术难点 解析:介绍了自己封装的一个 ...
- 我所理解的iOS开发高手
推荐:程序员简历怎么写才好?免费修改简历!! 上周日很荣幸参加了逻辑教育在深圳举办的iOSer线下沙龙,还有点意思.不仅遇到了一群激情满满又非常上进的iOS开发者,也认识几个风趣幽默.奇奇怪怪的逻辑教 ...
- 零基础学习 iOS 开发
作者:匿名用户 链接:https://www.zhihu.com/question/22000647/answer/114700565 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
最新文章
- linux node安装
- php xlsx里插入图片_常见的 PHP 面试题和答案分享
- 完全相同的4个小矩形如图所示放置_分享 | 你想知道的100个桥梁知识点!
- 计算机考试换机密码,Ami换机,让你轻松转移手机资料!
- Imgproc.findContours函数
- 诺基亚7P可刷华为鸿蒙系统,今日热闻 | 鸿蒙OS 2.0发布、EMUI 11发布、iPhone 12或配备7P镜头...
- GNU make manual 翻译(六十六)
- ISL68124与PMBUS
- Android6.0之AMS启动
- APEX 文件格式学习记录
- 【高数】高数第七章节——微分方程概念一阶微分方程高阶微分方程
- chrome没有注册类解决
- baseservlet怎么写_BaseServlet
- 云通讯这局棋,声网、容联云怎么破?
- python爬虫(四)cookie模拟登录和反反爬案例
- 同花顺程序交易接口实现类
- Unity任意轴向朝向某目标实现LookAt功能
- ServerSocket和Socket连接
- 身份证号码校验java
- ckplayer 网页视频播放
热门文章
- leet70:爬楼梯
- 2022年AI领域有哪些重要突破?(附报告全文)
- ORACLE SQL 查询练手
- 【USACO题库】3.2.4 Feed Ratios饲料调配
- 第一章:计算机的软硬件基本结构_4
- Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL ser
- python在图片上画矩形
- B05 - 008、什么是大数据
- 手表无线充电控制芯片方案的原理分析主控SOP8外置挂个AO3400或SI2302
- 出现单实例模式毁坏Destroying singletons