剑指offer之二叉搜索树与双向链表
题目:二叉搜索树与双向链表描述: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。思路:对于二叉搜索树,…
剑指offer之二叉树中和为某一值的路径
题目:二叉树中和为某一值的路径描述:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 路径定义为从树的根结点开始往下一直到叶结点所经过的结…
剑指offer之复杂链表的复制
题目:复杂链表的复制描述: 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点), 返回结果为复制后复杂链表的head…
剑指offer之二叉搜索树的后序遍历序列
题目:二叉搜索树的后序遍历序列描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不…
剑指offer之树的子结构
题目:树的子结构 描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:首先拿子树B的头结点去和树A的各个结点去比较,为…
剑指offer之从上往下打印二叉树
题目:从上往下打印二叉树描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:利用队列Queue,先进先出,树的左结点,右结点依次加入到队列中 queue的o…
剑指offer之顺时针打印矩阵
题目:顺时针打印矩阵 描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如, 如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 …
剑指offer之合并两个排序的链表
题目:合并两个排序的链表描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。思路: 非递归:同时遍历两个链表,每次都比较下它…
剑指offer之反转链表
题目:反转链表介绍:输入一个链表,反转链表后,输出新链表的表头思路:原地置换,就是不断地将结点指向它的前一个结点,然后头节点要一直保持在逆转后的头部就OK需要三个变量,1…