剑指Offer
user2639
这个作者很懒,什么都没留下…
展开
-
剑指Offer 6. 从尾到头打印链表
题目输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解答1[Java]:使用栈import java.util.ArrayList;import java.util.Stack;public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode list...原创 2019-05-19 15:59:18 · 230 阅读 · 0 评论 -
剑指Offer 7. 重建二叉树
题目题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列 {1,2, 4, 7, 3, 5, 6, 8} 和中序遍历序列 {4, 7, 2, 1, 5, 3, 8, 6},则重建出二叉树并输出它的头结点。解答1[Java]:递归import java.util.HashMap;public class ...原创 2019-05-19 15:59:51 · 261 阅读 · 0 评论 -
剑指Offer 8. 二叉树的下一个节点
题目给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。解答1[Java]:主要分为两种情况:①如果一个节点的右子树不为空,那么在中序遍历的下一个节点就是其【右子树的最左节点】。②如果一个节点的右子树为空,那么在中序遍历的下一个节点就是其【最近的一个祖先节点,这个祖先节点的左子树包含该节点】。pu...原创 2019-05-19 16:00:18 · 239 阅读 · 0 评论 -
剑指Offer 3. 数组中重复的数字
(1)找出数组中重复的数字题目在一个长度为n的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组 {2, 3, 1, 0, 2, 5, 3},那么对应的输出是重复的数字2或者3。解法1[Java]:动态重排序加判断把值为 i 的元素放到第 i 个位置上去...原创 2019-05-17 18:11:29 · 1857 阅读 · 0 评论 -
剑指Offer 4. 二维数组中的查找
二维数组中的查找题目:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法1:利用矩阵的特点把二维数组看作一个矩阵,选择矩阵右上角或者左下角的元素开始比较。逐步缩小比较范围。public class Solution { public ...原创 2019-05-17 18:12:34 · 187 阅读 · 0 评论 -
剑指Offer 5. 替换空格
题目题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入 “We are happy.”,则输出 “We%20are%20happy.”。解法1[Java]:从后向前扫描并替换空格public class Solution { public String replaceSpace(StringBuffer str) { int p1 = str.le...原创 2019-05-17 18:14:58 · 203 阅读 · 0 评论