当前位置: 首页 > news >正文

服务器网站绑定域名网站建设谷歌推广技巧

服务器网站绑定域名网站建设,谷歌推广技巧,多语言网站seo,网站开发的经验203.移除链表元素相关题目链接:力扣 - 移除链表元素题目重现给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。思路链表的删除操作如上图所示,我们需要先找到要删除的…

203.移除链表元素

相关题目链接:

力扣 - 移除链表元素

题目重现

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

思路

链表的删除操作如上图所示,我们需要先找到要删除的节点,但是要注意,在操作某一节点时,我们必须要知道它的前一个节点。

也就是说,我们进行遍历,当目前遍历到的节点的下一节点不为空且等于要删除的值时,开始进行删除操作。在删除操作中,我们也要注意其顺序。

代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode removeElements(ListNode head, int val) {ListNode head1=new ListNode(0);head1.next=head;ListNode temp = head1;while(temp.next!=null){if(temp.next.val==val){temp.next=temp.next.next;}else{temp=temp.next;}}return head1.next;}
}

707.设计链表

相关题目链接:

力扣 - 设计链表

题目重现

设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。

在链表类中实现这些功能:

  • get(index):获取链表中第 index 个节点的值。如果索引无效,则返回-1。

  • addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。

  • addAtTail(val):将值为 val 的节点追加到链表的最后一个元素。

  • addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长度,则该节点将附加到链表的末尾。如果 index 大于链表长度,则不会插入节点。如果index小于0,则在头部插入节点。

  • deleteAtIndex(index):如果索引 index 有效,则删除链表中的第 index 个节点。

思路

这道题目分为5个小函数,所以我们针对这五个部分分别进行讲解。

get(index),对于获取第index个节点的值很容易遍历嘛~

addAtHead(val),在链表的第一个元素前添加一个值为val的节点,和后面addAtIndex(index,val)类似所以,我们先写addAtIndex(index,val)

在第index个节点之前添加节点:

那么,在第index个节点前添加节点的重要任务就是找到第index个节点的前一个节点(这样才能操作第index个节点)。使用的方法依旧是遍历。

  • 在第 index 个节点之前插入一个新节点,例如index为0,那么新插入的节点为链表的新头节点。

  • 如果 index 等于链表的长度,则说明是新插入的节点为链表的尾结点

  • 如果 index 大于链表的长度,则返回空

至于删除某个节点如上一题的图中所示。

代码

class ListNode {int val;ListNode next;ListNode(){}ListNode(int val) {this.val=val;}
}class MyLinkedList {int size;ListNode head;public MyLinkedList() {size = 0;head = new ListNode(0);}public int get(int index) {if (index < 0 || index >= size) {return -1;}ListNode currentNode = head;for (int i = 0; i <= index; i++) {currentNode = currentNode.next;}return currentNode.val;}public void addAtHead(int val) {addAtIndex(0, val);}public void addAtTail(int val) {addAtIndex(size, val);}public void addAtIndex(int index, int val) {if (index > size) {return;}if (index < 0) {index = 0;}size++;ListNode pred = head;for (int i = 0; i < index; i++) {pred = pred.next;}ListNode toAdd = new ListNode(val);toAdd.next = pred.next;pred.next = toAdd;}public void deleteAtIndex(int index) {if (index < 0 || index >= size) {return;}size--;if (index == 0) {head = head.next;return;}ListNode pred = head;for (int i = 0; i < index ; i++) {pred = pred.next;}pred.next = pred.next.next;}
}

206.反转链表

相关题目链接:

力扣 - 反转链表

题目重现

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

思路

具体思路如图所示。要注意修改指向前,要有修改节点的前一个节点存在。

代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode curr=head;ListNode prev=null;while(curr!=null){ListNode next=curr.next;curr.next=prev;prev=curr;curr=next;}return prev;}
}

24. 两两交换链表中的节点

相关题目链接:

两两交换链表中的节点

题目重现

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

思路

本题思路如图所示。

代码

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode swapPairs(ListNode head) {ListNode pHead=new ListNode(-1);pHead.next=head;ListNode cur=pHead;while(cur.next!=null&&cur.next.next!=null){ListNode temp=cur.next;ListNode temp1=cur.next.next.next;cur.next=cur.next.next;cur.next.next=temp;temp.next=temp1;cur=cur.next.next;}return pHead.next;}
}

http://www.yidumall.com/news/23842.html

相关文章:

  • 网站建设本科毕业论文最新搜索引擎排名
  • php 简单购物网站重庆百度推广开户
  • 聊城建设网站网络营销推广难做吗
  • 湖州建设培训入口网站如何做好网络营销?
  • 南京定制网站建设黄冈网站推广软件有哪些
  • 网站建设安全规划长春seo排名公司
  • 房产app开发公司广西seo
  • 做怎样的网站能赚钱适合发朋友圈的营销广告
  • 泰安网站制作电话培训机构咨询
  • 假山设计制作杭州seo排名收费
  • 建设网站的账务处理抖音怎么推广引流
  • 怎么做网站收款二维码可口可乐搜索引擎营销案例
  • 重庆网站建设哪家公司那家好营销推广平台
  • 展示型网站可以做推广的吗山东seo百度推广
  • 做黑龙头像的网站拉新奖励的app排行
  • wordpress建立视频网站深圳网络推广代理
  • 重庆新闻网seo推广策略
  • 营销型网站上海制作企业新闻稿发布平台
  • 一个网站怎么做软件下载成人再就业培训班
  • wordpress 主题依赖插件电脑优化工具
  • 网站建设及推广套餐山东济南最新消息
  • 网站认证怎么认证网站seo外链平台
  • 重庆网站推广工具百度不收录网站怎么办
  • iis发布网站页面出问题云盘搜索
  • 设计logo理念长春seo
  • 淘宝的网站建设个人网站推广平台大全
  • 做网站销售说辞视频号排名优化帝搜软件
  • 百度搜索网站提交搜索引擎营销的概念及特点
  • 拖拽自助建站系统源码青岛关键词搜索排名
  • 做响应式网站公司谷歌seo建站