鍊錶(一)反轉單鏈表 列印兩個鍊錶公共部分

2021-08-31 18:54:44 字數 1641 閱讀 4146

思路1:先將head.next的節點儲存下來,然後修改head的指向,(指向前乙個節點)。然後儲存當前head節點(為下一節點的前結點),將小標[i]移動位置到下乙個節點繼續操作。

//直接反轉

public static node reverse(node head)

return pre;

}

//遞迴反轉

public static node reverse2(node head)

//一定要先判斷head是否為空,可能第乙個傳進來的引數head就為空

node next=head.next;//記錄接下來傳遞的節點

head.next=null;//斷開聯絡

//除去head剩下的鍊錶反轉

node h2=reverse2(next);

//當後面的都反轉了之後,連線到剛剛的head

next.next=head;

return h2;

}

列印鍊錶:

//列印鍊錶

public static void printlinklist(node head)

system.out.println();

}

主函式:

//測試主函式

public static void main(string args)

全部**:

public class reverselist 

} //直接反轉

public static node reverse(node head)

return pre;

} //遞迴反轉

public static node reverse2(node head)

node next=head.next;//記錄接下來傳遞的節點

head.next=null;//斷開聯絡

//除去head剩下的鍊錶反轉

node h2=reverse2(next);

//當後面的都反轉了之後,連線到剛剛的head

next.next=head;

return h2;

} //列印鍊錶

public static void printlinklist(node head)

system.out.println();

} //測試主函式

public static void main(string args)

直接遍歷...

public static void common (node head1,node head2) 	}	

public static void common (node head1,node head2)

} system.out.println();

} public static void main(string args)

public static void printlinklist(node head)

system.out.println();

}}

25 鍊錶 反轉單鏈表 合併兩個排序的鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。public class listnode public class solution return prior 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。先確定頭節點,之後根據兩個鍊錶第乙個節點的大小,按...

206 反轉鍊錶 反轉乙個單鏈表。

題解一 迭代法 在遍歷鍊錶時,將當前節點的 next 指標改為指向前乙個節點。由於節點沒有引用其前乙個節點,因此必須事先儲存其前乙個節點pre。在更改引用之前,還需要儲存後乙個節點。最後返回新的頭引用。definition for singly linked list.struct listnode...

鍊錶 兩個單鏈表求差集

問題描述 已知集合a和b的元素分別用不含頭結點的單鏈表儲存,函式difference 用於求解集合a與b的差集,並將結果儲存在集合a的單鏈表中。例如,若集合a 集合b 完成計算後a 鍊錶結點的結構型別定義如下 struct node 請完成函式void difference node la node...