日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

链表中求倒数第几个元素并打印出来

發(fā)布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 链表中求倒数第几个元素并打印出来 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
//補(bǔ)充一下 鏈表的逆序操作 添加到listed 類中public Listed reverse() {Listed head = this;Listed p = head;// 單個節(jié)點的情況if (p.next == null) {return p;}// 從第二節(jié)點的開始Listed q = p;p = p.next;q.next = null;// 防止自循環(huán)// 臨界條件while (p != null) {Listed temp = q;q = p; //存儲p = p.next;q.next = temp;}// 將值付給頭節(jié)點head = q;return head;}

面試中遇到這個問題,寫下給大家分享一下?

package com.qey.learn;import com.sun.org.apache.xerces.internal.dom.PSVIAttrNSImpl; import jdk.nashorn.internal.ir.LiteralNode;/*** @ClassName Listed* @Description* @Author qianxl* @Date 2021-03-11 17:12* @Version 1.1**//*** 鏈表分為包含頭節(jié)點* 不包含頭節(jié)點 兩種類型*/ public class Listed {private int data;private Listed next;public Listed(int data) {this.data = data;}public Listed getNext() {return next;}public void setNext(Listed next) {this.next = next;}public void showListed() {Listed temp = this.next;if (this == null) {System.out.println("數(shù)據(jù)為空");}while (temp != null) {System.out.println(temp.data);temp = temp.next;}}public Listed addList(Listed listed) {Listed p = this;if (p.next == null) {p.next = listed;return this;}Listed temp = p.next;while (p != null) {temp = p;p = p.next;}temp.setNext(listed);return this;}/*** 邏輯思路分析:* (1)找到倒數(shù)下標(biāo)p1 比如 倒數(shù)2 p1為1 則p2 為2 ;循環(huán) p1=p1.next* 則當(dāng)p2=p2.next 當(dāng)p2.next==null為最后一個元素時,則p1就是倒數(shù)第二元素* Lastposition =1 時則p1 倒數(shù)第二個元素 lastPosition -=1;* @param lastPosition 倒數(shù)位置* @return*/public Listed findLastN( int lastPosition) {if(lastPosition<=0){System.out.println("下標(biāo)從1開始");return null;}lastPosition -=1;//去除head 根節(jié)點Listed temp = this.next;Listed p1 = this.next;//臨界條件if (p1 == null) {return null;}Listed p2 = p1;while (p2 != null&& lastPosition>0) {lastPosition--;p2 = p2.next;}// 第一種情況就兩個節(jié)點if (p2.next == null) {this.next = this.next.next;}//第二種情況 多個節(jié)點while (p2 != null) {if ( p2.next == null) {temp.next = temp.next.next;//;return this;} else {temp = p1;p1 = p1.next;p2 = p2.next;}}return this;}}class LinkedlistDemo{public static void main(String[] args) {Listed head = new Listed(0);head.addList(new Listed(2));head.addList(new Listed(3));head.addList(new Listed(4));head.addList(new Listed(5));System.out.println(head);Listed lastN = head.findLastN(1);lastN.showListed();} }

?

總結(jié)

以上是生活随笔為你收集整理的链表中求倒数第几个元素并打印出来的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。