随笔分类 - 牛客剑指offer
摘要:思路:跟上一篇的之字形打印思路类似,只不过不用隔层翻转打印
阅读全文
摘要:思路:之前遇到过层序打印二叉树的题,使用一个队列存储每一层的节点,当一个节点出队列时,他的左右孩子入队列。那么这个问题是在这个问题的基础上加了点限制,因此我们也可以在之前的思路上稍作修改。 首先用curLayer作为队列存储当前层的所有节点,把这一层标记成0或者1, 再用nextLayer层存储从c
阅读全文
摘要:```python
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution: def isSymmetrical(self...
阅读全文
摘要:思路: 分4种情况: 1. 当该节点存在右子树时,那么下一个节点一定在右子树中产生 这种情况下又分成两种情况: (1)右子树不存在左分支,那么要找的下一个节点就是右子树的根节点。 (2)右子树中存在左分支,那么不停的寻找左分支的左分支就可以了。 2.当该节点不存在右子树时,那么下一个节点一定在该节点
阅读全文
摘要:思路:因为重复的节点都要删除,因此需要标记重复开始前的上一个节点,又因为头结点有可能是重复的节点,为了操作方便,我们可以再链表前面设置一个空节点作为头结点,因此需要设置3个指针,第一个head指向头结点。第二个p用来标记重复节点的前面一个节点,第三个cur用来寻找重复的节点,一旦找到p就不移动了,c
阅读全文
摘要:思路:转自https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f79a38e4 链接:https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f
阅读全文
摘要:思路:参考https://blog.csdn.net/u010005281/article/details/80200398
阅读全文
摘要:思路:从后往前遍历字符串,先不处理第一个字符,因为他可能是一个表示正负符号的字符。等除第一个都处理完了,再处理第一个字符就可以了
阅读全文
摘要:思路:使用递归f(n) = f(n 1) + n, 但是不能使用if进行递归出口的控制,因此利用python中and的属性,即and判断都为真的话输出and后面的那个数字
阅读全文
摘要:思路:用一个指针,循环遍历列表,模拟每个在场孩子报数,用cnt计数,当报到m 1后,将这个人出列,cnt置为0,剩下的人继续报数
阅读全文
摘要:思路:看是否连续就是看中间缺少的部分能否用大小王,即0来填充,因此只需要比较0的个数和中间缺少的个数就行了,如果中间缺少的比0的数目多,即大小王的个数不足以将缺少的填充,那么就不连续了
阅读全文
摘要:思路:用到了split join等内置函数,之后再补充不用内置函数的方法吧 方法2:
阅读全文
摘要:思路:参考https://blog.csdn.net/qq_41822235/article/details/82109081 里面的方法4 同时因为python2.7的原因,除法会省去小数点后面的数字,if语句那里加了一句i j == 2 tsum,
阅读全文
摘要:思路:用一个字典统计出每个数字出现的次数,然后遍历字典,找到只出现一次的
阅读全文
摘要:思路:平衡二叉树的左右子树的深度相差不能超过1, 因此可以利用上一题求二叉树的深度的函数,对左右子树求最大深度,如果深度小于1,那么就是平衡二叉树了
阅读全文
摘要:思路:用递归思想,不停往下找节点,找到一个节点加1
阅读全文
摘要:思路:因为当出现一个公共节点时,后面的节点都相同(因为链表的后继节点是唯一的,也就表明公共节点的后继一定相同,以此类推,后面的节点都相等),因此可以将所有节点放入栈中,从后往前看,直到不相同的点,那么他的前一个节点就是第一个公共节点了。
阅读全文

浙公网安备 33010602011771号