![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 50
PityPityPity
但行好事,莫问前程
展开
-
[leetcode] 二叉树的迭代遍历
二叉树的遍历-迭代前序遍历中序遍历后序遍历以上只会递归,迭代看完就忘,记录一下。迭代其实与递归一样,递归隐式的维护了一个栈,而在迭代中需要我们显示的定义出来;依照不同的遍历顺序,将结点依次入栈,出栈。时间按复杂度O(n),空间复杂度O(n)。144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历前序遍历遍历顺序是 根结点 - 左子树结点 - 右子树结点,先将根结点存入栈,若栈不为空,取出栈头元素,存入栈头元素的右、左结点,一直重复,直到栈为空,一定是先存右结点,前序原创 2021-09-14 16:50:31 · 94 阅读 · 0 评论 -
[leetcode] 203:移除链表元素
leetcode-203 移除链表元素:传送门我的思路设置一个哨兵节点,可以简化对头节点的操作,用一个指针保存节点的前驱节点。ListNode* removeElements(ListNode* head, int val) { if(head == nullptr) return head; ListNode* parent = new ListNode(-1);//哨兵节点 parent->next = head;原创 2021-06-05 15:59:23 · 46 阅读 · 0 评论 -
[leetcode] 160:相交链表
leetcode-160 相交链表:传送门我的思路分别求出链表的长度numa和numb,如果链表相交,在相交节点及以后两个链表的长度是相等的,那么只要长的链表头节点先走 链表长度差 的距离,之后两个链表节点同时往后走,就一定能找到相交节点;如果链表不相交,链表的结点最后会指向空,返回空。ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { ListNode* pa = headA; ListNode* pb原创 2021-06-05 15:24:03 · 72 阅读 · 0 评论 -
[leetcode] 525:连续数组
leetcode-525 连续数组:传送门我的思路还是穷举,猜到应该是和前缀和有关,但没有想法,惭愧惭愧。因为这次用例只跑了31条就遇到了很长很长的数组,超时了,我也不知道写的对不对,就不放代码了优化参考小虎大佬的题解:传送门定义一个值sum,遇到1加一,遇到0减一,将连续子数组0和1数量相同问题转化成连续子数组和为0问题创建一个哈希表,key存储sum,value存储当前下标,如果存在key值相同就找到其下标pos被当前下标value减去得到子数组的长度,判断是否最大就好了 为什么找到key原创 2021-06-03 20:08:46 · 64 阅读 · 0 评论