代码不给你,给你讲思想,这样比给你直接的代码,你会理解的更深。
从根开始访问。如果有左子树的话就会拿左子树再当一个根。再去看这个根有没有左子树。如果没有看右子树。如果右子树有的话,就拿这个根上左子树的右子树去当根,同样还是看它有没有子树。
你想反复的解决同样一个问题。但是这个问题的已知条件是上一次执行这个问题的结果就要考虑到它了!
一个类的定义方法:public class Node
{
int value
Node next
以下有一些set,get方法及构造方法
}
一个类的成员是当前类
一个方法:
public int f(int n)
{
if(n<=1)
return 1
else
return n+f(n-1)
}
以上是求1-n的累加
该方法调用了该方法自己
public static int pro1(int i){
if (i == 2)
return 2
else
return i*(pro1(i-1))
}
public static int pro2(int i)
{
if (i == 1)
return 1
else if(i%2 == 0)
return pro2(i-1)
else if(i%2 == 1)
return pro1(i)+pro2(i-2)
else
return 0
}
public static void main(String []args){
int i = pro2(6)
System.out.println(i)
}
分别是2个递归函数,你的问题直接调用 pro2(7)或者pro2(8)都行