小白蛋挞 2022-04-02 10:18 采纳率: 85%
浏览 34
已结题

反转链表操作,怎末把反转链表之后输出啊?ListNode就是自己定义的一个数据结构吗?


public class Demo11 {

    static class ListNode{
        int val;
        ListNode next;
        ListNode(int x){val=x;}
    }
    public static  ListNode reverse(ListNode head){
        ListNode cur = head;
        ListNode pre = null;
        ListNode tmp;
        while(cur!=null) {
            tmp = cur.next;
            cur.next = pre;
            pre = cur;
            cur = tmp;
        }
        return head;
    }
    static void print(ListNode head){
        while(head!=null){
            System.out.println("节点"+head.val);
            head = head.next;
        }
    }
    public static void main(String[] args) {
      ListNode f1 = new ListNode(1);
      ListNode f2 = new ListNode(2);
      ListNode f3 = new ListNode(3);
      f1.next = f2;
      f2.next = f3;
      reverse(f1);
      print(f1);
    }
}

我以为调用reverse函数后,调用输出函数会输出3,2,1。但是只输出了1。然后我尝试输出f1.next发现
没有输出。

img

  • 写回答

3条回答 默认 最新

  • 编号灬9527 2022-04-02 11:07
    关注

    img


    img

    img


    cur第一次指向header,设置下一节点为空,header的变化:1-2-3 ---》 1-null
    后续的操作都不是操作head,你直接返回head,可不就是1嘛

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月2日