顺序表链表 LeetCode专项练习 [19]\[24]
生活随笔
收集整理的這篇文章主要介紹了
顺序表链表 LeetCode专项练习 [19]\[24]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目列表:
19.刪除鏈表的倒數第N個節點
24.兩兩交換鏈表中的節點
19. 刪除鏈表的倒數第N個節點
給定一個鏈表,刪除鏈表的倒數第 n 個節點,并且返回鏈表的頭結點。
示例:
給定一個鏈表: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點后,鏈表變為 1->2->3->5.
說明:
給定的 n 保證是有效的。
進階:
你能嘗試使用一趟掃描實現嗎?
雙指針解法:
/*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* removeNthFromEnd(struct ListNode* head, int n){struct ListNode *p = head, *q = head;while (p) {if (n < 0) q = q->next; n--;p = p->next;}if (!n) return head->next;struct ListNode *tmp = q->next;q->next = q->next->next;free(tmp);return head; }24.兩兩交換鏈表中的節點
給定一個鏈表,兩兩交換其中相鄰的節點,并返回交換后的鏈表。
你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換。
示例 1:
輸入:head = [1,2,3,4]
輸出:[2,1,4,3]
示例 2:
輸入:head = []
輸出:[]
示例 3:
輸入:head = [1]
輸出:[1]
提示:
鏈表中節點的數目在范圍 [0, 100] 內
0 <= Node.val <= 100
總結
以上是生活随笔為你收集整理的顺序表链表 LeetCode专项练习 [19]\[24]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 树莓派连接7寸屏幕(7DP-CAPLCD
- 下一篇: 设计模式大纲整理——编目、分类、选择与使