鍊錶的反轉

2021-09-25 19:25:17 字數 920 閱讀 6370

題目:定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。

package com.helan.c;

public class reverselist

}public static listnode reverselist(listnode head)

listnode reversedhead=head;

listnode pnode=head;

listnode prenode=null;

while(pnode!=null)

pnode.next=prenode;

prenode=pnode;

pnode=pnext;

}return reversedhead;

}public static void printlist(listnode head)

}// 1->2->3->4->5->6

private void test01()

public static void main(string args)

}

第二種方法運用遞迴,判斷頭節點不為空且不是只有乙個節點,

儲存當前節點的下一節點,打斷當前節點的指標域,運用遞迴,改變指標域,前乙個節點賦值到其下乙個節點指標,返回

public static listnode reverselist2(listnode head) 

listnode pnext=head.next;

head.next=null;

listnode reversedhead=reverselist2(pnext);

pnext.next=head;

return reversedhead;

}

鍊錶 反轉鍊錶

問題 兩兩交換鍊錶中的節點 問題 k 個一組翻轉鍊錶 問題鏈結 利用棧先進後出的特性,遍歷鍊錶,將每個結點加入棧中,最後進行出棧操作,先出棧的結點指向臨近的後出棧的結點。definition for singly linked list.struct listnode class solution ...

反轉鍊錶與分組反轉鍊錶

經典的反轉鍊錶,先上 public class listnode public class printlist system.out.println public class reverse public listnode reverse listnode root listnode pre nul...

鍊錶的反轉

鍊錶的反轉是乙個經常被問到的乙個面試題,也是乙個非常基礎的問題。比如乙個鍊錶是這樣的 1 2 3 4 5 通過反轉後成為5 4 3 2 1。最容易想到的方法遍歷一遍鍊錶,利用乙個輔助指標,儲存遍歷過程中當前指標指向的下乙個元素,然後將當前節點元素的指標反轉後,利用已經儲存的指標往後面繼續遍歷。源 如...