成對交換鍊錶中相鄰的元素
直接交換鍊錶中兩個元素值,給元素交換賦值,而不用改變指標方向;但是這種方法中當單個節點中有很多欄位的時候(比如:name,age,***),效率較低!
package suanfa.warppairs;
/** * @description:兩兩交換鍊錶中相鄰節點
* 通過直接交換元素值,不改變指標方向的方式,需要輔助空間o(1)
* @author: fangct
* @create: 2019-01-24 10:55
* */
public
class
/** * 交換邏輯
* @param head
* @return
*/public
(mynode head)
return head;
}public
static
void
printnode
(mynode head)}}
class
mynode
public
mynode
(int val, mynode next)
}
通過改變指標方向,來交換元素
package suanfa.warppairs;
/** * @description:成對交換兩個鍊錶中相鄰兩個元素
* @author: fangct
* @create: 2019-01-24 10:19
* */
public
class
public
static node swarpnodepairs
(node head)
return dummy.next;
}public
static
void
printnode
(node head)}}
class
node
public
node
(int val, node next)
}
最終結果:2,1,4,3,6,5 單鏈表交換相鄰元素
include include typedef struct node node 交換相鄰的元素,如果是交換兩結點的值就很簡單,但是交換結點的話就。以下是交換結點。如 1 2 3 4 5 2 1 4 3 5 node swapadjacent node head1 return head1 建立列表...
lintcode 鍊錶 刪除鍊錶中的元素
刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5 判斷鍊錶是否為空,若是,返回null,若不是,進行下一步 判斷鍊錶第乙個結點是否為要刪除的結點,若是,將head指標向後移,若不是,無需操作 定義指標pre,判斷當...
刪除鍊錶中的元素
1 問題描述 刪除鍊錶中等於給定值val的所有節點。給出鍊錶 1 2 3 3 4 5 3,和 val 3,你需要返回刪除3之後的鍊錶 1 2 4 5。2 實現思路 遍歷鍊錶,若值等於val,此結點刪除,否則依次檢驗。3 definition for singly linked list.struct...