算法
Physicaloser
博客主页:https://zhayujie.com
个人邮箱:zyj@zhayujie.com
展开
-
链表翻转的迭代和递归解法
迭代: public class Solution { public ListNode reverseList(ListNode head) { ListNode pre = null; while (head != null) { ListNode current = head.next; head.nex原创 2017-04-26 13:08:41 · 385 阅读 · 0 评论 -
汉诺塔 - 经典递归问题
汉诺塔问题是一个经典的递归问题,大意是:有A, B, C三根柱子,A柱上有n个盘子,小的在上,大的在下,现在要在B柱的帮助下将A柱上的所有盘子移动到C柱上,而且要求每次只能移动一个,并且任何时候小的盘子只能在大的盘子上面。 利用递归逐步分解问题的思想可以轻松解决这道题。首先考虑这有一个圆盘的情况,之间从A移动到C即可。原创 2017-09-09 23:08:20 · 1135 阅读 · 0 评论 -
AVL树的创建--C语言实现
AVL树是一种自平衡(Self-balancing)二叉查找树(Binary Search Tree),要求任何一个节点的左子树和右子树的高度之差不能超过1。 AVL树的插入操作首先会按照普通二叉查找树的插入操作进行,不同的是在成功插入一个节点后会向上进行回溯,判断路径中的每一个节点左子树和右子树高度之差,如果相差大于1,则进行旋转操作使得树重新达到平衡状态,旋转的本质其实是为当前不平衡的子树选择一原创 2018-03-08 11:52:04 · 2178 阅读 · 5 评论