![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题
文章平均质量分 68
小天要奔跑
希望能养成看论文习惯的划水侠一只
展开
-
Leetcode刷题之二叉树篇(四)
二叉树篇98. 验证二叉搜索树思路1:对二叉树进行中序遍历,如果是二叉树搜索树 自然遍历序列是升序的。因此采取数组保存中序遍历结果,如果前一个元素大于等于后面一个元素 则返回False思路2:对二叉树进行中序遍历,如果是二叉树搜索树 自然遍历序列是升序的。采取一个成员变量preVal遍历记录上一次中序遍历的结果,然后与当前值比较即可# 思路1class Solution(object): def __init__(self): self.nums = []原创 2021-10-09 19:29:47 · 224 阅读 · 0 评论 -
Leetcode刷题之二叉树篇(三)
二叉树篇404. 左叶子之和思路1:先找到二叉树中的叶子节点,然后对叶子节点的 左叶子求和。左叶子可以通过,该叶子节点是其父亲节点的左孩子确定。如果二叉树只有根节点这种特殊情况,左叶子和为0class Solution(object): def __init__(self): self.sum = 0 def sumOfLeftLeaves(self, root): if not root.left and not root.right: retu原创 2021-10-06 00:24:29 · 176 阅读 · 0 评论 -
Leetcode刷题之二叉树篇(二)
二叉树篇111. 二叉树的最小深度思路1:二叉树的最小深度需分情况讨论:节点无左孩子,则为右子树深度加1;无右孩子,则为左子树深度加1;左右孩子都有,为左子树和右子树深度较小值加1class Solution(object): def minDepth(self, root): if not root: return 0 if not root.left: return self.minDepth(root.right) + 1 if not原创 2021-10-04 10:06:36 · 81 阅读 · 0 评论 -
Leetcode刷题之二叉树篇(一)
二叉树篇144. 二叉树的前序遍历思路1:递归遍历,先访问根节点 再访问左孩子节点 再访问右孩子节点思路2:迭代遍历,借助显示栈遍历并访问左子树左节点,并压入栈 并依次弹出再去遍历右子树# 递归class Solution(object): def __init__(self): self.ret = [] def preorderTraversal(self, root): self.dfs(root) return se原创 2021-09-30 17:48:11 · 99 阅读 · 0 评论 -
Leetcode刷题之链表篇(三)
链表篇2. 两数相加思路1:采取双指针,一一对应相加,过程中记录进位以及考虑双指针是否为空class Solution(object): def addTwoNumbers(self, l1, l2): ret,cin = ListNode(0),0 pre = ret while l1 or l2: if l1 and l2: val = (l1.val + l2.val + cin)原创 2021-09-27 20:16:56 · 107 阅读 · 0 评论 -
Leetcode刷题之链表篇(二)
链表篇24. 两两交换链表中的节点思路1:引入哨兵节点,采取双指针pre、cur即可class Solution(object): def swapPairs(self, head): auxi = ListNode(0,next = head) pre,cur = auxi,head while cur and cur.next: tmp = cur.next cur.next = tmp.n原创 2021-09-26 23:43:19 · 99 阅读 · 0 评论 -
Leetcode刷题之链表篇(一)
链表篇06. 从尾到头打印链表思路1:直接遍历链表,存到数组后,利用数组逆序即可思路2:链表+逆序 自然想到使用递归#思路1:遍历class Solution(object): def reversePrint(self, head): nums = [] while(head): nums.append(head.val) head = head.next return nums[::-原创 2021-09-25 20:44:57 · 124 阅读 · 0 评论 -
剑指offer刷题之06:从尾到头打印链表
简介思路1:直接遍历链表,存到数组后,利用数组逆序即可思路2:链表+逆序 自然想到使用递归C++版本://思路1:遍历class Solution {public: vector<int> reversePrint(ListNode* head) { vector<int> v; while(head) { v.push_back(head->val);原创 2021-05-12 09:29:57 · 102 阅读 · 0 评论