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

响应式网站建设公司文件外链网站

响应式网站建设公司,文件外链网站,成都盘古网站是谁做,wordpress网站源代码需求 思路 链表必有节点&#xff0c;节点两要素&#xff1a;当前元素值&#xff0c;下一个节点地址 import java.util.Scanner;// 定义一个单向链表 public class MyLinkedList<E> {int size 0;// 顶一个私有的内部类&#xff0c;表示链表的节点public class Node {E da…

需求

在这里插入图片描述
在这里插入图片描述

思路

  • 链表必有节点,节点两要素:当前元素值,下一个节点地址
import java.util.Scanner;// 定义一个单向链表
public class MyLinkedList<E> {int size = 0;// 顶一个私有的内部类,表示链表的节点public class Node {E data;Node next;public Node(E data, Node next) {this.data = data;this.next = next;}}
}

添加节点

  • 第一次插入直接插入头结点
  • 后面都使用尾插法,插入到最后一个元素的后面(所以需要一个一个遍历)
// 添加节点
public Node add(E e) {Node head = null;Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请输入数据,输入exit退出");String data = scanner.next();if (data.equals("exit")) {break;}if (head == null) {// 如果头节点为空,直接创建一个新的节点head = new Node((E) data, null);} else {// 尾插法 添加新的节点// 如果头节点不为空,找到最后一个节点,然后在最后一个节点的后面添加一个新的节点Node temp = head;while (temp.next != null) {temp = temp.next;}// 在最后一个节点的后面添加一个新的节点temp.next = new Node((E) data, null);}size++;}return head;
}

遍历

// 遍历链表 从头节点开始遍历
public void Foreach(Node head) {Node temp = head;if (head == null) {System.out.println("链表为空");return;}while (temp != null) {System.out.println(temp.data + " ");temp = temp.next;}
}

链表指定位置反转

  • 下标异常直接返回头结点
  • 先找到left的前一个节点,方便下次重置的时候直接找到left
  • 将left和right之间的内容存储到一个数组中
  • 对数组的内容进行折半反转
  • 遍历left到right节点,将反转之后的内容替换进去
  // 链表反转(不一定要反转节点,反转节点的内容也可以)public Node reverse(Node head,int left,int right) {if (head == null ||left < 1 || left > size || right < 1 || right > size || left >= right) {return head;}//1. 找到left的前一个节点Node pre = null;Node leftNode = head;E[] data = (E[]) new Object[right - left + 1];for (int i = 1; i <= right; i++) {// 找到left的前一个节点if (i == left - 1) {pre = leftNode;}// 从left到right的节点的数据存储到数组中if (i >= left && i <= right){data[i - left] = leftNode.data;}// leftNode指向下一个节点leftNode = leftNode.next;}//2. 找到right的后一个节点Node rightNode = leftNode;// 3.反转data数组for (int i = 0; i < data.length / 2; i++) {E temp = data[i];data[i] = data[data.length - i - 1];data[data.length - i - 1] = temp;}// 4.从pre节点开始,将data数组中的数据赋值给链表中的节点for (int i = 0; i < data.length; i++) {pre.next.data = data[i];pre = pre.next;}return head;}

测试:

MyLinkedList<String> myLinkedList = new MyLinkedList<>();
MyLinkedList<String>.Node head = myLinkedList.add("aa");
myLinkedList.Foreach(head);
myLinkedList.reverse(head,2,4);
System.out.println("反转后的链表");
myLinkedList.Foreach(head);
  • 反转前的链表:aa bb cc dd ee ff gg
  • 反转后的链表:aa dd cc bb ee ff gg
http://www.hkea.cn/news/799513/

相关文章:

  • 网站做付费推广都需要问什么网络热词2022
  • 给男票做网站表白的软件产品市场推广计划书
  • 西安网站制作定制怎么制作自己的个人网站
  • wordpress 如何移动端盐城seo优化
  • asp.net 制作网站开发百度竞价排名软件
  • 百度爱采购推广平台天津网络推广seo
  • 福州市闽侯县建设局网站推广引流吸引人的文案
  • wordpress目录 读写权限泰安短视频seo
  • 东莞建设网站流程澎湃新闻
  • 萧县住房和城乡建设局网站seo排名推广工具
  • 企业网站php模板下载百度百科官网首页
  • 做愛視頻网站在线网页制作网站
  • 织梦pc怎么做手机网站搜索引擎优化的基础是什么
  • 课程建设网站设计源码爱站网反链查询
  • 安徽省建设业协会网站个人网页制作教程
  • 好的摄影网站推荐福州seo顾问
  • html做的好看的网站如何宣传推广产品
  • 微信手机网站制作怎么引流客源最好的方法
  • 宿州建设网站公司前端seo搜索引擎优化
  • 做王境泽表情的网站百度seo关键词优化排名
  • 怎么选择无锡网站建设虚拟主机搭建网站
  • 做原油期货关注什么网站搜索引擎优化是做什么
  • 微信小程序怎么制作游戏安卓优化清理大师
  • 胶南做网站初学者做电商怎么入手
  • 网站为什么要维护佛山网络营销推广
  • 国企网站建设报告怎么建造自己的网站
  • 免费做司考真题的网站余姚网站如何进行优化
  • 如何网站开发1688网站
  • 丽水专业网站建设价格青岛网站优化
  • 网站开发专业培训学校百度推广登录官网入口