剑指offer-二叉搜索树与双向链表
摘要:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。这题做了好久,但是后面看来并不是想象中那么难。例如一棵树其实链表的顺序就是这棵树中根遍历的顺序,所以我想到了用递归或者非递归。非递归的做法就是用栈对这棵树进行中根遍历,用栈进行中根遍历的...
阅读全文
posted @
2015-10-28 15:25
qingfei
阅读(349)
推荐(0)
剑指offer-二叉树中某一路径的和为给定值
摘要:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/** * 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 * 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 ...
阅读全文
posted @
2015-10-22 10:57
qingfei
阅读(322)
推荐(0)
剑指offer-二叉搜索树的后序遍历
摘要:/**输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 * 如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 * 一开始不是很明白题目意思,以为是让我后序遍历某棵二叉树 * 后来搞明白了。 * 二叉搜索树就像是二分查找里面的,左子树的所有元素都小于根节点,右...
阅读全文
posted @
2015-10-22 09:22
qingfei
阅读(131)
推荐(0)
剑指offer-合并两个排序的链表
摘要:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。其实思路跟归并排序差不多,注意边界值 1.两个List都为空,则返回空 2.其中一个List为空,则返回不为空的List循环解法:public static ListNode merge(ListNode...
阅读全文
posted @
2015-10-20 14:23
qingfei
阅读(212)
推荐(0)
重载overload和重写override的区别
摘要:public class MethodOverrideVSOverload { //因为参数与Object的equals方法不同,故没有重写equals方法,而是重载关系 public boolean equals(MethodOverrideVSOverload other) { System....
阅读全文
posted @
2015-10-19 21:29
qingfei
阅读(626)
推荐(0)
剑指offer和leetcode都有的_反转链表
摘要:输入一个链表,反转链表后,输出链表的所有元素。 一开始我的做法非常复杂,因为我一次变了两个指针,导致要分别判断单数个结点和偶数个结点的情况。 反转链表要解决的两个问题就是 1.结点指向它的前驱 2.头结点变为其尾结点 当反转一个结点时,假设反转i,首先需要记录它的前驱,让它指向它的前驱...
阅读全文
posted @
2015-10-19 15:42
qingfei
阅读(504)
推荐(0)
剑指offer-从尾到头打印链表
摘要:输入一个链表,从尾到头打印链表每个节点的值。 我一开始想到的是遍历这个链表,遍历过程中用一个ArrayList保存里面的值,然后再从尾到头遍历这个ArrayList,存储在新的ArrayList里面返回。 //使用另外一个ArrayList存储链表的方法 public static ArrayL...
阅读全文
posted @
2015-10-19 11:16
qingfei
阅读(1294)
推荐(1)
LeetCode-Cycle Detection,Find the Duplicate Number
摘要:本来以为这题很简单,但是看要求,第一不能改变这个数组,第二只能使用O(1)的空间,第三时间复杂度小于O(n^2),就不能使用遍历数组的方式来解决了。 有两种方法,一种是利用Binary Search,一种是利用Floyd的cycle detection算法。 Binary Search M...
阅读全文
posted @
2015-10-19 11:15
qingfei
阅读(499)
推荐(0)
LeetCode-Symmetric Tree
摘要:这题是判断一个二叉树是否对称,如第一棵树。一开始我的想法很复杂,先把树序列化到数组中,再根据下标计算对称的位置进行判断。后来发现,假设上面的第二层两个结点为p和q,判断p的左孩子跟q的右孩子是否相等,p的右孩子跟q的左孩子是否相等即可。/**思路是层次遍历,每次两个结点出队,为p和q,若满足p.le...
阅读全文
posted @
2015-10-19 11:14
qingfei
阅读(127)
推荐(0)
剑指offer-打印链表倒数第k个结点
摘要:输入一个链表,输出该链表中倒数第k个结点。 看到这个题目,我们很容易想到一种做法,遍历两次链表,一次得到链表长度,另外一次得到倒数第k个结点。 不过要注意的是边界值的测试链表为空k大于链表长度 于是我的做法如下:public static ListNode FindKthToTa...
阅读全文
posted @
2015-10-19 10:53
qingfei
阅读(269)
推荐(0)
Http协议中Get和Post的区别
摘要:1.根据HTTP规范,Get用于信息获取,应该是安全和幂等的,Post表示可能修改服务器的资源。 安全的意思是,Get不改变服务器的资源,此操作是获取信息而不是修改信息,但注意这里的安全是指不修改信息。 幂等的意思是,多次请求同一个url返回的结果应该是相同的,但实际操作中,并不是那么严格,例如...
阅读全文
posted @
2015-10-11 21:59
qingfei
阅读(176)
推荐(0)