• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java单链表翻转实现的实例代码分享

java 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

Java实现单链表反转,递归和非递归两种形式。接下来通过本文给大家分享Java实现单链表翻转实例代码,需要的的朋友参考下

Java实现单链表反转,递归和非递归两种形式

/** * 反转单链表 *//** * 定义链表 *  * @author 16026 * */class Node {  int val;  Node next;  public Node(int val) {    this.val = val;  }}public class ReverseList {  /**   * 反转链表   *    * @param head   * @return   */  public static Node reverseList(Node head) {    if (head == null || head.next == null) {      return head;    }    Node reHead = null;// 定义新链表头结点    while (head != null) {      Node cur = head.next;// 记录下一个节点      head.next = reHead;// 将rehead节点连接到head节点上      reHead = head;// 让rehead指向head      head = cur;// 将head指向下一个节点    }    return reHead;  }  /**   * 递归反转链表   *    * @param head   * @return   */  public static Node reverseList2(Node head) {    if (head == null || head.next == null)      return head;    Node rehead = reverseList2(head.next);    head.next.next = head;// 将头节点置于末端    head.next = null;// 防止链表循环    return rehead;  }  /**   * 打印链表   *    * @param head   */  public static void printList(Node head) {    if (head == null)      return;    while (head != null) {      System.out.print(head.val + " ");      head = head.next;    }  }  /**   * 测试   *    * @param args   */  public static void main(String[] args) {    Node n1 = new Node(1);    Node n2 = new Node(2);    Node n3 = new Node(3);    Node n4 = n<span>本文来源gaodai#ma#com搞*!代#%^码$网*</span>ew Node(4);    Node n5 = new Node(5);    n1.next = n2;    n2.next = n3;    n3.next = n4;    n4.next = n5;    // Node rehead = reverseList(n1);    Node rehead = reverseList2(n1);    printList(rehead);  }}

运行结果如下:

以上就是Java单链表翻转实现的实例代码分享的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java单链表翻转实现的实例代码分享
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址