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