
LeetCode练习
力扣数据结构练习
叶子Coding
这个作者很懒,什么都没留下…
展开
-
二叉树的前、中、后序遍历(非递归版本)
方法2:使用一个TreeNode*prev指针来记录上一次走过的节点,只要在出数据的时候满足top-》right=prev,意思就是我在这个节点上判断我的右边已经有一个prev指针了,代表我的右边走过了,也就意味着我自己已经走过一次的,这是第二次返回的时候,此时就可以直接出栈。方法1:再建立一个全新的栈,可以存放stack<int>/stack<bool>,总之第一次经过节点就标记为0,回到根节点标记为1,第二次回到看到是1就直接出。原创 2023-10-28 21:05:47 · 86 阅读 · 1 评论 -
LeetCode每日一题--用队列实现栈(C语言)
你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。由于c语言没有队列模板,首先我们需要手动实现一个队列的全部流程,然后通过创建两个 队列来回导数据,最后可以实现栈。原创 2023-05-16 10:24:26 · 272 阅读 · 0 评论 -
LeetCode每日一题--144.二叉树的前序遍历
本体我主要运用递归调用的思想,进行遍历。但在传值时,一直出错,最后发现需要用到传址调用的思想;原创 2023-04-17 19:58:47 · 103 阅读 · 0 评论 -
LeetCode每日一题--26.删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]输出:2, nums = [1,2,_]输入:nums = [1,1,2]原创 2023-04-16 15:47:04 · 96 阅读 · 0 评论 -
LeetCode每日一题--[88.合并两个有序数组]
输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。输入:nums1 = [0], m = 0, nums2 = [1], n = 1。输入:nums1 = [1], m = 1, nums2 = [], n = 0。解释:需要合并 [1,2,3] 和 [2,5,6]。解释:需要合并的数组是 [] 和 [1]。输出:[1,2,2,3,5,6]原创 2023-04-11 22:43:24 · 101 阅读 · 0 评论 -
LeetCode每日一题--[27.移除元素]
解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。例如,函数返回的新长度为 2 ,而 nums = [2,2,3,3] 或 nums = [2,2,0,0],也会被视作正确答案。解释:函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。输入:nums = [0,1,2,2,3,0,4,2], val = 2。元素的顺序可以改变。输入:nums = [3,2,2,3], val = 3。输出:5, nums = [0,1,4,0,3]原创 2023-04-11 22:10:39 · 82 阅读 · 0 评论 -
LeetCode每日一题--[189.轮转数组]
用 nn 表示数组的长度,我们遍历原数组,将原数组下标为 ii 的元素放至新数组下标为 (i+k)\bmod n(i+k)modn 的位置,最后将新数组拷贝至原数组即可。输入: nums = [1,2,3,4,5,6,7], k = 3。输入:nums = [-1,-100,3,99], k = 2。向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]输出: [5,6,7,1,2,3,4]原创 2023-04-11 12:53:38 · 182 阅读 · 0 评论 -
LeetCode每日一题--[面试题17.04.消失的数字]
0~n它的异或结果是个定值,且它们的异或不分先后顺序,那我们就把0 ~ n的所有数字全部异或一遍先,再和题目给定数组nums中的数字进行异或,我们从规律一知道,相同数字异或会等于0,由此便可获得缺少的那个数字。数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗?输入:[9,6,4,2,3,5,7,0,1]注意:本题相对书上原题稍作改动。来源:力扣(LeetCode)本体主要采用异或操作。输入:[3,0,1]原创 2023-04-09 23:29:25 · 175 阅读 · 0 评论