剑指offer
蜀沐
这个作者很懒,什么都没留下…
展开
-
leetcode剑指offer32-III 广度优先算法
题目:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/思路:广度优先算法利用栈(先进后出)定义两个栈,一个用于存储当前节点,一个用于存储下一层的节点判断根节点是否为零,为零就将返回空;将根节点入栈1,将标识符设置为1,(表示对栈1 内的节点进行操作)栈1、栈2不为空 执行循环体如果标识符为1,计算栈1节点的个数,将每个节点从栈中抛出,每抛出一个节点,将结点的值入一维数组,将节点的左子原创 2020-10-22 15:28:31 · 103 阅读 · 0 评论 -
leetcode剑指32-II 二叉树层序遍历
题目;https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/solution/zi-jie-ti-ku-jian-32-ii-jian-dan-cong-shang-dao-xi/思路:广度优先搜索利用队列 (先进先出)1. 先判断树是否为空,为空就返回空;2. 不为空将根节点入队列,判断队列是否为空,不为空就循环3. 计算队列的长度(得到当前层的节点数),遍历当前层的每个节点, 将原创 2020-10-22 11:47:56 · 91 阅读 · 0 评论 -
letcode面试题02.01 移除链表的相同节点
题目: https://leetcode-cn.com/problems/remove-duplicate-node-lcci/思路一:利用unordered_set这个容器的函数 《count》。先设置unordered_set,如果unordered_set容器内没有相同的节点,则将其加入容器中,指针向后移一位,否则则将指针向后移两位,直到链表遍历结束补充知识:unordered_set它的实现基于hashtable,它的结构图仍然可以用下图表示,这时的空白格不在是单个value,而是set中的k原创 2020-10-12 21:50:50 · 128 阅读 · 0 评论 -
letcode剑指offer24反转链表
题目: https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/submissions/思路;反转链表 ListNode* reverseList(ListNode* head) { /* 写法一: if (head == NULL) return NULL; ListNode*t = NULL; ListNode*p = head->next;原创 2020-10-12 17:45:05 · 78 阅读 · 0 评论 -
leetcode02.06 链表简单题
题目: https://leetcode-cn.com/problems/palindrome-linked-list-lcci/solution/liang-chong-fang-fa-jie-jue-hui-wen-lian-biao-wen-/思路一:用栈模拟,将链表的数值进栈,然后从头开始遍历链表,如果数值和出栈的值相等,则是回文彪,如果不同,则不是。利用栈的特性(先进后出)bool isPalindrome(ListNode* head) {bool isPalindrome(ListNode原创 2020-10-12 16:57:32 · 108 阅读 · 0 评论 -
剑指offer18 -链表问题
题目: https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/思路一:函数参数是头之指针和值,遍历链表,如果满足头指针指向节点的下一个节点的值和需要删掉的值相等,那么就需要头指针指向的节点的next域设置为要删掉的下一个节点的值。同时返回头结点的下一个结点的地址。注意:这种情况不包括头节点为空和头节点的值就是要删掉的值if (!head) return head;if (head->val == val) ret原创 2020-10-09 20:25:25 · 184 阅读 · 0 评论