單鏈表,以及反轉遞迴實現,

2021-09-29 18:38:49 字數 1400 閱讀 9854

/**

* @author by zhouwx5

* @created on by 2019/11/19

* @desc:

*/public class linkednode

private void linklist(t element)

private int length()

/*** 獲取給定索引的值

* @param index 給定索引

* @return 返回值

*/private t get(int index)

/*** 獲取當前節點

* @param index 索引

* @return index所代表的節點

*/private node getnodeindex(int index)

node currend =header;

for (int i =0;i}

return null;

}/**

* 給定值,尋找位置

* @param element 值

* @return 返回位置

*/private int getsize(t element)

}return -1;

}/**

* 新增乙個新節點

* @param element 給定值

*/private void add(t element)else

size++;

}private void addatheard(t element)

/*** 插入節點

* @param element 給定值

* @param index 插入位置

*/private void insert(t element,int index)elseelse}}

/*** 刪除鍊錶

* @param index 索引

* @return 被刪除的值

*/private t delete(int index)else

size--;

return (t) del.getdate();

}/**

* 單鏈表反轉,遞迴法

* @param head 頭節點

* @return 新鍊錶

*/private node reverseiteratively(node head)

node temp =head.getnext();

node newnode =reverseiteratively(head.getnext());

temp.setnext(head);

head.setnext(null);

return newnode;

}}

單鏈表反轉 遞迴實現 GO語言

鍊錶是一種比較常見的資料結構 單鏈表的反轉用遞迴實現比較簡單,這裡簡單講一下。首先定義節點 type node struct下面是反轉遞迴函式,煉表頭比較重要,控制煉表頭不做修改 func reverselist node node node else 舉個例子 鍊錶 1 2 3 4 5 6 nil...

單鏈表反轉(遞迴和非遞迴)

單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 cpp view plain copy typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟...

單鏈表反轉(遞迴和非遞迴)

單鏈表反轉有遞迴和非遞迴兩種演算法。下面定義節點 typedef struct listnodelistnode 在遞迴演算法中的做法是 1找到最後乙個節點和倒數第二個節點,把最後乙個節點設為頭節點的後繼 2反轉這兩個節點 3倒數第三個和第四個節點重複執行步驟2 其中注意,鍊錶是以節點後繼為null...