
OfferCoder
ljf_study
https://thejinfei.github.io
展开
-
按之字形顺序打印二叉树/把二叉树打印成多行
按之字形顺序打印二叉树题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解题思路可以用一个队列和一个flag来表示flag用来表示是奇数层还是偶数层(根节点是第0层)如果是偶数层,vector翻转插入即可当前层的size记录好就可以正确表示/*struct TreeNode ...原创 2019-12-03 16:02:24 · 260 阅读 · 0 评论 -
对称的二叉树
对称的二叉树题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解题思路递归的思路递归停止的条件,走到叶子节点的子节点,如果传入的两个节点都为空,证明此时是对称的如果这个节点的左孩子不等于右孩子 || 右孩子不等于左孩子 就不可能是对称的/*struct TreeNode { int val; s...原创 2019-12-03 15:07:36 · 261 阅读 · 0 评论 -
删除链表中重复的结点
删除链表中重复的结点题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5解题思路设置三个指针,p,q, r -> 前驱,当前,后继如果q->val != r -> val,三个指针同时往后移一位...原创 2019-12-03 11:59:44 · 307 阅读 · 0 评论 -
扑克牌顺子
扑克牌顺子题目描述LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...原创 2019-12-03 11:07:23 · 206 阅读 · 0 评论 -
链表中环的入口结点
链表中环的入口结点题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。解题思路链表中,用快慢两指针,首先确定是否链表中有环如果快指针先到了链表的结尾,则肯定没有环否则,快慢指针一定会相遇然后慢指针置头结点,一步一步走,两个指针再次相遇的节点,即为链表中的环的入口当fast == slow时,假设slow走过x个节点,则fast走过2x个节点。设环中...原创 2019-12-01 20:31:33 · 140 阅读 · 0 评论 -
圆圈中最后剩下的数
题目描述每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0…m-1报数…这样下去…直到剩下最后一...原创 2019-12-01 19:41:16 · 152 阅读 · 0 评论 -
二叉树的镜像
二叉树的镜像思路如果当前节点为空,肯定就直接返回了如果当前左右节点都为空,肯定也直接返回了如果当前左右子节点为非空,交换两个左右子节点即可递归左右子树来做/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(...原创 2019-12-01 17:07:22 · 136 阅读 · 0 评论 -
判断B是不是A的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)解题思路需要两个函数的递归,第一个是Root1与Root2节点相等,然后递归两个节点下面的左右节点,即DoesTree1HasTree2函数完成的。如果不相等,就要递归Root1的左右子树再与Root2进行比较代码参考书籍/*struct TreeNode { int val; ...原创 2019-12-01 16:31:39 · 249 阅读 · 0 评论