理解Java/Python是如何构造出链表的。
Java规范的链表定义如下:需包含指针域和数据域,数据域data需要形成get()和set()方法指针域next需要get()方法。
public class ListNode{
private int data;//结点的数据域
private ListNode next;//结点的指针域
public ListNode(int data){
this.data=data;}
public int getData(){
return data;}
public void setData(int data){
this.data=data;}
public ListNode getNext(ListNode next){
return next;}
public void setNext(ListNode next){
this.next=next;}
}
Python生成链表的定义方式如下:python采用init 进行初始化对象,在传递属性时利用self来传递
class ListNode:
def __init__(self,data):
self.data=data //数据域
self.next=next //指针域
def getdata(self):
return self.data
def setdata(self):
self.data=data
def getnext(self):
return self.next
def setnext(self):
self.next=next
在笔试的算法题中常用以下方式来定义链表:
Java:
public class ListNode{
public int val;
public ListNode next;
ListNode(int x){
val=x;
next=null;
}
}
Python:
class ListNode:
def __init__(self,val=0,next=None):
self.val=val //数据域
self.next=next //指针域
Java和Python都是面向对象编程,实现链表的方式基本一致