Leetcode 24 Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.
Example:
Given1->2->3->4
, you should return the list as2->1->4->3
Note:
- Your algorithm should use only constant extra space.
- You may not modify the values in the list's nodes, only nodes itself may be changed.
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode list = head;
ListNode node = new ListNode(0);
ListNode n = node;
if(head == null){
return list;
}
Stack<Integer> stack = new Stack<>();
while(list != null){
stack.add(list.val);
list = list.next;
if(stack.size() == 2){
while(!stack.isEmpty()){
node.next = new ListNode(stack.pop());
node = node.next;
}
}
}
if(!stack.isEmpty()){
node.next = new ListNode(stack.pop());
}
return n.next;
}
}
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode swapPairs(ListNode head) {
ListNode newHead = new ListNode(0);
newHead.next = head;
head = newHead;
while(head.next!=null){
ListNode temp = head.next;
if(temp.next==null) break;
head.next = temp.next;
temp.next = temp.next.next;
head.next.next = temp;
head = head.next.next;
}
return newHead.next;
}
}
上面的是使用的stack進行儲存,每次儲存結束後利用棧的後進先出來倒序;下面的程式碼為直接進行連結串列的操作,主要是操作next指標的形式來進行倒置
相關文章
- LeetCode 24 Swap Nodes in PairsLeetCodeAI
- 24. Swap Nodes in PairsAI
- Leetcode Swap Nodes in PairsLeetCodeAI
- Leetcode-Swap Nodes in PairsLeetCodeAI
- Swap Nodes in Pairs leetcode javaAILeetCodeJava
- Swap Nodes in PairsAI
- Leetcode 線性表 Swap Nodes in PairsLeetCodeAI
- 【leetcode】24. Swap Nodes in Pairs 連結串列奇偶節點交換LeetCodeAI
- 024,Swap Nodes in PairsAI
- [LeetCode] Swap Nodes in Pairs 成對交換節點LeetCodeAI
- 【LeetCode】Swap Nodes in Pairs 連結串列指標的應用LeetCodeAI指標
- 兩種解法搞定Swap Nodes in Pairs演算法題AI演算法
- LeetCode-Palindrome PairsLeetCodeAI
- 【LeetCode】Palindrome Pairs(336)LeetCodeAI
- [LeetCode] 336. Palindrome PairsLeetCodeAI
- LeetCode677. Map Sum PairsLeetCodeAI
- LeetCode-Find K Pairs with Smallest SumsLeetCodeAI
- Leetcode Reverse Nodes in k-GroupLeetCode
- Leetcode 25 Reverse Nodes in k-GroupLeetCode
- LeetCode-Count Complete Tree NodesLeetCode
- Leetcode-Reverse Nodes in k-GroupLeetCode
- Reverse Nodes in k-Group leetcode javaLeetCodeJava
- 【Leetcode】25.Reverse Nodes in k-GroupLeetCode
- 【LeetCode】493. Reverse Pairs 翻轉對(Hard)(JAVA)LeetCodeAIJava
- leetcode 679. 24 Game(遊戲24點)LeetCodeGAM遊戲
- [Leetcode力扣 25] Reverse Nodes in k-GroupLeetCode力扣
- Palindrome PairsAI
- 11.2.0.1 rac 2nodes asm aix6.1 orarootagent.bin swap memory記憶體洩漏ASMAI記憶體
- 11.2.0.1 rac 2nodes asm aix6.1 orarootagent.bin swap memory記憶體洩漏ASMAI記憶體
- DAY 24 LeetCode學習筆記LeetCode筆記
- [LeetCode] Reverse Nodes in k-Group 每k個一組翻轉連結串列LeetCode
- 【LeetCode 222_完全二叉樹_遍歷】Count Complete Tree NodesLeetCode二叉樹
- 13-Architecture-nodes
- 【Lintcode】572. Music PairsAI
- 1512. Number of Good PairsGoAI
- 532. K-diff Pairs in an ArrayAI
- HINT no_swap_join_inputs/swap_join_inputs
- 222. Count Complete Tree Nodes(Leetcode每日一題-2020.11.24)LeetCode每日一題