初次了解ListNode,针对ListNode的理解「建议收藏」

初次了解ListNode,针对ListNode的理解「建议收藏」关于ListNodepublicclassListNode{intval;ListNodenext;//链表指向的下一个值的指针ListNode(intx){val=x;}//这个方式赋值}我想到的几点事项定义链表ListNode时,链表的首个值不能为0,当首个参数为0时,代表着链表为空。 只需要定义一个List…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

关于ListNode

public class ListNode{
    int val;
    ListNode next;        //链表指向的下一个值的指针
    ListNode(int x){val = x;}   //这个方式赋值
}

Jetbrains全家桶1年46,售后保障稳定

我想到的几点事项

  • 定义链表ListNode时,
  1. 链表的首个值不能为0,当首个参数为0时,代表着链表为空。
  2. 只需要定义一个ListNode xx = new ListNode(0);即可。即只定义一个空链表。
  3. 不需要定义长度 。
  • 赋值时
  1. 通过xx.next = new ListNode(4);来赋值,注意此时是赋值给下一个指针指向的位置,此时此链表一个值,值为4。
  2. 通过一个链表指向原链表地址,赋值完成时,打印原链表的指针地址。获取所有值。(后面的打印想不太明白,有待研究)
  • 取值时
  1. 取第一个值时,只需要xx.val即可。
  2. 取第二或之后的值时,需要xx = xx.next;int x = xx.val;这个方式取值。

下面是LeetCode第二题时的解,通过这个解来了解更容易理解。

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)  两个已知链表对象ListNode l1, ListNode l2
输出:7 -> 0 -> 8
原因:342 + 465 = 807

class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        ListNode xList = new ListNode(0);//上来链表为空,所以第一位为0
        ListNode newList = xList;
        System.out.println(xList + "==" + newList);
        int curr = 0;
        while(l1 != null || l2 != null){
            //取值
            int x = l1 != null?l1.val:0;
            int y = l2 != null?l2.val:0;
            //System.out.println(x + "==" + y);
            //计算
            int sum = curr + x + y;
            //存值
            curr = sum /10;//取整
            newList.next = new ListNode(sum%10);//取余先给下一个位置赋值
            //移动指针指向下一个值
            newList = newList.next;
            System.out.println(xList + "==" + newList + "==" + xList.next);
            //System.out.println(newList.val);
            //取下一个节点的指针
            if(l1 != null)l1 = l1.next;
            if(l2 != null)l2 = l2.next;
        }

        if(curr > 0){
            newList.next = new ListNode(curr);
        }
        return xList.next;
    }
}

打印出来的结果

ListNode@52cc8049==ListNode@52cc8049

ListNode@52cc8049==ListNode@133314b==ListNode@133314b ListNode@52cc8049==ListNode@b1bc7ed==ListNode@133314b ListNode@52cc8049==ListNode@7cd84586==ListNode@133314b

[7, 0, 8]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215891.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis集和类型传参

    mybatis集和类型传参

    2021年9月2日
    61
  • 喊山第二部_软组raid0

    喊山第二部_软组raid0原题链接喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)一个山头呼喊的声音可以被临近的山头同时听到。题目假设每个山头最多有两个能听到它的临近山头。给定任意一个发

    2022年8月9日
    7
  • linux系统 系统推荐 deepin国产系统 最好用的国产linux系统 Windows系统的优秀替代品 deepin系统安装 系统安装 deepin[通俗易懂]

    linux系统 系统推荐 deepin国产系统 最好用的国产linux系统 Windows系统的优秀替代品 deepin系统安装 系统安装 deepin[通俗易懂]前言:我用过多款linux系统,电脑上装的是Ubuntu和deepin,服务器端用的是centos,还用过优麒麟等。黑苹果也用了一段时间。现在linux系统已经发展的比较完善,内核及其图形界面也很稳定,当要说真的可以当做个人操作系统来使用的,我认为是deepin系统。deepin是一款国产系统,基于debian开发的linux操作系统,它拥有linux系统的所有优势,而且完美结合deepin-…

    2022年5月16日
    51
  • HTTP GET请求方式传递数组参数

    HTTP GET请求方式传递数组参数httpGET 请求方式如何传递数组参数 一起来看看 先在本地服务器上来一个 controller 方法 我们把接收到的参数打印在控制台上 顺便多此一举地返回一下响应结果用 postman 请求一下 再来看看控制台的打印结果老铁没毛病 所以 GET 请求方式怎么传递数组参数大家都知道了吧 关注点赞 谢谢

    2025年11月18日
    4
  • Android最全UI库合集

    Android最全UI库合集AndroidUILibrary目录索引抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新ViewPager图表(Chart)菜单(Menu)浮动菜单对话框空白页滑动删除手势操作RecyclerViewCard…

    2022年5月2日
    70
  • WBEM简介_叶文玲的简介

    WBEM简介_叶文玲的简介from:http://blog.csdn.net/hkbyest/archive/2007/07/16/1693649.aspx%windir%\system32\wbem文件夹是什么wbem文

    2022年8月1日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号