反轉連結串列、合併連結串列、樹的子結構
反轉連結串列
程式碼:每次把節點往前加
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *pre=NULL;
auto p=head;
while(p)
{
auto temp=p->next;
p->next=pre;
pre=p;
p=temp;
}
return pre;
}
};
合併連結串列
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* merge(ListNode* l1, ListNode* l2) {
ListNode *temp=new ListNode(-1);
auto p=temp;
while(l1 && l2)
{
if(l1->val < l2->val)
{
p->next=l1;
l1=l1->next;
p=p->next;
}
else{
p->next=l2;
l2=l2->next;
p=p->next;
}
}
if(l1)
{
p->next=l1;
}
else p->next=l2;
return temp->next;
}
};
樹的子結構
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
bool hasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) {
if(!pRoot1 || !pRoot2) return false;
if(match(pRoot1,pRoot2)) return true;
return hasSubtree(pRoot1->left,pRoot2) || hasSubtree(pRoot1->right,pRoot2);
}
bool match(TreeNode * root1,TreeNode * root2)
{
if(!root2) return true;
if(!root1) return false;
if(root1->val != root2->val ) return false;
return match(root1->left,root2->left) && match(root1->right,root2->right);
}
};
相關文章
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 反轉連結串列
- 資料結構之連結串列:206. 反轉連結串列資料結構
- #反轉連結串列_C++版 #反轉連結串列_Java版 @FDDLCC++Java
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- 【LeetCode-連結串列】面試題-反轉連結串列LeetCode面試題
- javascript中的連結串列結構—雙向連結串列JavaScript
- 資料結構實驗之連結串列四:有序連結串列的歸併資料結構
- 演算法基礎~連結串列~排序連結串列的合併(k條)演算法排序
- 合併K個排序連結串列排序
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 單連結串列的歸併(資料結構)資料結構
- java實現連結串列反轉Java
- leetcode 反轉連結串列LeetCode
- TypeScript 實現連結串列反轉TypeScript
- 1025 反轉連結串列
- **203.移除連結串列元素****707.設計連結串列****206.反轉連結串列**
- Hash連結串列轉換為紅黑樹,和樹轉換為連結串列的條件
- 面試必備的「反轉連結串列」面試
- 資料結構-單連結串列、雙連結串列資料結構
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- 資料結構和演算法——Go實現單連結串列並且反轉單連結串列資料結構演算法Go
- (連結串列)連結串列的排序問題排序
- 連結串列4: 迴圈連結串列
- 連結串列-單連結串列實現
- 連結串列歸併排序排序
- 構建連結串列
- 資料結構-連結串列資料結構
- 資料結構 - 連結串列資料結構
- 連結串列-資料結構資料結構
- 資料結構--連結串列資料結構
- 資料結構—連結串列資料結構
- JavaScript從反轉陣列到連結串列反轉JavaScript陣列
- leetcode 92 反轉連結串列ⅡLeetCode
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構