題目描述
輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。
思路:借助圖形來分析一下反轉鍊錶需要改變哪些指標。假設某一時刻,經過若干操作,我們已經把h點之前的指標調整完畢,現在反轉i指標指向的結點。
由圖可知,為了防止指標的斷開,需要儲存i的next指標,為了完成反轉,需要知道i的前乙個指標prev,當然也要有個當前指標用作遍歷鍊錶,即總共三個指標分別是:pnode,pnext,pprev。經過分析,可以寫出以下**:
public
class solution
}*/public
static listnode reverselist(listnode head)
//反轉,即令i的next指向pprev
pnode.next=pprev;
pprev=pnode;
pnode=pnext;
}return preversedhead;
}public
static
void printlist(listnode head)
}/*public
static
void main(string args)
}//print reverselist
printlist(reverselist(list.get(0)));
}*/}
劍指offer 面試題16 反轉鍊錶
題目描述 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。hint 請務必使用鍊錶 輸入 輸入可能包含多個測試樣例,輸入以eof結束。對於每個測試案例,輸入的第一行為乙個整數n 0 n 1000 代表將要輸入的鍊錶的個數。輸入的第二行包含n個整數t 0 t 1000000 代表鍊錶元素。輸出 對應每個...
劍指Offer面試題16 反轉鍊錶
反轉鍊錶 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出翻轉後鍊錶的頭結點。分析 假設h,i,j三個節點。h節點已經指向前面的節點,i節點要指向h節點,這時,i與j中間斷開,因此在將i節點指向 h節點之前,先記下j節點。因此調整時 需要知道當前節點以及當前節點前面乙個節點,以及當前節點後面乙個...
劍指offer面試題16 反轉鍊錶
題目描述 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。鍊錶節點定義如下 public class listnode 示意圖 分析 為了正確反轉乙個鍊錶,需要調整鍊錶中指標的方向,為了將調整指標這個複雜的過程分析清楚,我們可以借助圖形來分析,如上圖所示,在 a 所示的鍊錶中...