随笔分类 -  数据结构

摘要:## 1.AVLtree 平衡二叉查找树 适合于插入删除少 查找多的情况 ## 2.二叉搜索树 条件: 1. 非空左子树的所有键值小于其根节点键值 2. 非空右子树所有键值小于根节点键值 3. 左右子树都是二叉搜索树 ## 3.红黑树 二叉查找树,每个节点上增加一个存储位表示节点颜色,Red或Bla 阅读全文
posted @ 2023-08-24 11:22 lwx_R 阅读(25) 评论(0) 推荐(0)
摘要:public boolean isSymmetric(TreeNode root) { if(root == null){ return true; } return judge(root.left,root.right); } //左节点的left = 右节点的right 左节点的right = 阅读全文
posted @ 2022-10-11 12:24 lwx_R 阅读(17) 评论(0) 推荐(0)
摘要:public TreeNode mirrorTree(TreeNode root) { if(root == null){ return null; } TreeNode left=mirrorTree(root.left); TreeNode right=mirrorTree(root.right 阅读全文
posted @ 2022-10-11 12:23 lwx_R 阅读(13) 评论(0) 推荐(0)
摘要:/遍历A树,用每个节点开始与B进行比较 public boolean isSubStructure(TreeNode A, TreeNode B) { return (A != null && B != null) && (recur(A, B) || isSubStructure(A.left, 阅读全文
posted @ 2022-10-11 12:22 lwx_R 阅读(33) 评论(0) 推荐(0)
摘要:slow 一次走一步,fast 一次走两步。 那么当 fast 到达链表的末尾时,slow 必然位于中间。 ListNode* middleNode(ListNode* head) { ListNode* slow = head; ListNode* fast = head; while (fast 阅读全文
posted @ 2022-10-06 11:59 lwx_R 阅读(28) 评论(0) 推荐(0)
摘要:ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { if(l1 == NULL){ if(l2 == NULL){ return NULL; }else{ return l2; } } if(l1 != NULL && l2 == NULL){ 阅读全文
posted @ 2022-10-06 11:47 lwx_R 阅读(13) 评论(0) 推荐(0)
摘要:ListNode* reverseList(ListNode* head) { ListNode* tail=NULL; ListNode* front=head; ListNode* curr=NULL; //先令curr指向front,front移动下一个,curr的next指向tail实现反转 阅读全文
posted @ 2022-10-06 11:47 lwx_R 阅读(18) 评论(0) 推荐(0)
摘要:ListNode* getKthFromEnd(ListNode* head, int k) { ListNode* fast=head; ListNode* slow=head; //因为头结点开始 所以要从1开始 for(int i=1;i<k;i++){ fast=fast->next; // 阅读全文
posted @ 2022-10-06 11:45 lwx_R 阅读(27) 评论(0) 推荐(0)
摘要:ListNode* deleteNode(ListNode* head, int val) { if(head->val == val){ head=head->next; return head; } ListNode* front=head->next; ListNode* tail=head; 阅读全文
posted @ 2022-10-06 11:44 lwx_R 阅读(57) 评论(0) 推荐(0)
摘要:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r 阅读全文
posted @ 2022-10-01 18:40 lwx_R 阅读(42) 评论(0) 推荐(0)
摘要:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) { if(root1==nullptr){ return root2; }else if(root2==nullptr){ return root1; } TreeNode* root=ne 阅读全文
posted @ 2022-09-07 10:19 lwx_R 阅读(27) 评论(0) 推荐(0)
摘要:Node* connect(Node* root) { if(root==NULL){ return root; } queue<Node*> q; q.push(root); while(!q.empty()){ int size=q.size(); for(int i=0;i<size;i++) 阅读全文
posted @ 2022-09-07 10:07 lwx_R 阅读(28) 评论(0) 推荐(0)