递归思路(另附一个迭代小实例)

来源:互联网 发布:matlab破解软件 编辑:程序博客网 时间:2024/06/08 19:20

设计递归方法三个步骤:

1.创建一个新对象或者克隆一个新对象

2.把对象的下一个索引地址作为参数传给当前递归方法

3.返回当前新创建的对象

例:

public static Entry deepHash(Entry en){
    return new Entry(en.key,en.value,en.next==null?null:deepHash(en.next));        // 新对象,把下一个索引作为参数传递,返回创建的对象
}


public static Entry deepHash(Entry en){
  if(en.next != null){
    try {
      Entry entry = (Entry) en.clone();         // 克隆得到新对象
      entry.next = deepHash(en.next);       // 将下一个索引作为参数传递给递归方法
      return entry;                                            // 返回当前克隆得到的新对象
    } catch (CloneNotSupportedException e) {
    e.printStackTrace();
   }
 }
 return null;
}



迭代小实例:

public Entry deepClone(Entry en){

    Entry entry = new Entry(en.key,en.value,en.next);
    for(Entry p = entry; p.next!=null;p=p.next){
       p.next = new Entry(p.next.key,p.next.value,p.next.next);
    }
    return entry;
}



原创粉丝点击