数据结构
数据结构
du1232
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 32 - III. 从上到下打印二叉树 III
题目 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] 思路:1栈1队列,k是每一层的标识数 在奇数层,进行正常的层序遍历进入队列的同时,并入栈 。如:队列[1,2] 栈原创 2021-06-21 11:25:59 · 115 阅读 · 0 评论 -
剑指offer--链表中倒数第k个节点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入1,{1,2,3,4,5} 返回值{5} 思路: 运用快慢指针的思想,快指针先于慢指针k个节点,遍历链表,当快指针为NULL;慢指针指向第(n-k)个节点即倒数第k个节点。如下图所示: 代码实现如下: struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) { struct ListNode* prev = pListHead; struct原创 2020-12-18 18:04:32 · 58 阅读 · 2 评论 -
leetcode 203 --移除链表元素--C实现
题目说明: 删除链表中等于给定值 val 的所有节点 示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 首先我们需要清除链表的概念(链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。)其结构图如下: 思路: 运用双指针解法,如下图所示,定义prev = NULL;cur= head;根据cur->val是否等于给定val进行判原创 2020-12-18 10:48:17 · 96 阅读 · 0 评论 -
leetcode--数组形式的整数加法 ---C实现
题目描述:对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。 给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/add-to-array-form-of-integer 示例 输入:A = [1,2,0,0], K = 34 输出:[1,2,3,4] 解释:1200 + 34 = 1234 思路原创 2020-12-16 15:23:41 · 103 阅读 · 1 评论