剑指Offer-34 二叉树中和为某一值的路径
二叉树中和为某一值的路径(剑指Offer-34) 题面 请实现两个函数,分别用来序列化和反序列化二叉树。 示例 给定如下二叉树,以及目标和 target = 22, 1 5 2 / \ 3 4 8 4 / / \ 5 11 13 4 6 / \ / \ 7 7 2 5 1 返回: ...
二叉树中和为某一值的路径(剑指Offer-34) 题面 请实现两个函数,分别用来序列化和反序列化二叉树。 示例 给定如下二叉树,以及目标和 target = 22, 1 5 2 / \ 3 4 8 4 / / \ 5 11 13 4 6 / \ / \ 7 7 2 5 1 返回: ...
序列化二叉树(剑指Offer-37) 题面 请实现两个函数,分别用来序列化和反序列化二叉树。 示例 1你可以将以下二叉树: 2 3 1 4 / \ 5 2 3 6 / \ 7 4 5 8 9序列化为 "[1,2,3,null,null,4,5]" 思路 BFS层序遍历即可,注意,如果节点为null,则它的子节点就不记录。 ...
二叉搜索树与双向链表(剑指Offer-36) 题面 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: ...
复杂链表的复制(剑指Offer-35) 题面 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 示例 示例 1: ...
二叉搜索树的后序遍历序列(剑指Offer-33) 题面 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 ...
从上到下打印二叉树III(剑指Offer-32.3) 题面 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 ...
从上到下打印二叉树II(剑指Offer-32.2) 题面 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 1 3 2 / \ 3 9 20 4 / \ 5 15 7 返回: ...
从上到下打印二叉树(剑指Offer-32.1) 题面 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 1 3 2 / \ 3 9 20 4 / \ 5 15 7 返回: ...
合并两个排序的链表(剑指Offer-25) 题面 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 示例 1输入:1->2->4, 1->3->4 2输出:1->1->2->3->4->4 限制 10 <= 链表长度 <= 1000 思路 链表合并,设立一个伪头结点可以方便代码书写。 ...
反转链表(剑指Offer-24) 题面 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例 1输入: 1->2->3->4->5->NULL 2输出: 5->4->3->2->1->NULL 限制 10 <= 节点个数 <= 5000 思路 链表原地转置。 ...
链表中倒数第k个节点(剑指Offer-22) 题面 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。 ...
删除链表的节点(剑指Offer-18) 题面 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 **注意:**此题对比原题有改动 示例 示例 1: ...
用两个栈实现队列(剑指Offer-09) 题面 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) ...
重建二叉树(剑指Offer-07) 题面 输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 例如,给出 1前序遍历 preorder = [3,9,20,15,7] 2中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: ...
从尾到头打印链表(剑指Offer-06) 题面 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1输入:head = [1,3,2] 2输出:[2,3,1] 限制 10 <= 链表长度 <= 10000 思路 简单遍历链表,然后reverse一下就好。 ...