仅作为备注, 便于自己回顾. import java.util.Arrays; public class MergeSort { public static class LinkedNode<V extends Comparable<V>> { public V value; public LinkedNode<V> next; public LinkedNode(V value) { this.value = value; } public LinkedNode(V
Java数据结构和算法(一)线性结构之单链表 prev current next -------------- -------------- -------------- | value | next | -> | value | next | -> | value | next | -------------- -------------- -------------- 单链表的结构如上:最后一个节点的 next=null.下面看一下代码. (1) 链表的基本操作 public class
1.求单链表中有效节点个数 public static int GetLength(HeroNode headNode) { int length = ; var cur = headNode.Next; while (true) { if (cur == null) break; length++; cur = cur.Next; } return length; } 2.查找单链表中倒数第N个节点 public static HeroNode GetLastIndexNode(HeroNod
一.递归 汉诺塔算法:把A柱的盘子,移动到C柱上,最少需要移动几次,大盘子只能在小盘子下面 1.当盘子的个数为n时,移动的次数应等于2^n – 1 2.描述盘子从A到C: (1)如果A只有一个圆盘,可以直接移动到C: (2)如果A有N个圆盘,可以看成A有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 B,然后,将 A的最后一个圆盘移动到C,再将B的(N-1)个圆盘移动到C. 3.代码 i = 0 def move(n, a, b, c): global i if n