请JAVA高手来帮忙解决个问题,急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:05:21
public class ShortestPaths {
public void ShortestPath(int s,int d[],int p[],int n,int a[][],int t,int b[],int count)
{ LinkedList L=new LinkedList();//路径可到达的顶点的列表
//在p中返回前继结点
if(s<1||s>n)
System.exit(0);
for(int i=1;i<=n;i++)
{ d[i]=a[s][i];
if(d[i]==50)p[i]=0;
else {p[i]=s;
ListNode x=new ListNode(i,null);
L.Insert(0,x);}
}
//更新d,p
ListNode current=new ListNode();
ListNode next=new ListNode();
current=L.head;
next=current.getLink();
int v=current.getData();
int w=next.getData();
int i=40;
while(L.head!=null&&v!=i){
//寻找具有最小d的顶点v

while(w!=50 ){
if(d[w]<d[v])v=

没有仔细看你的程序逻辑,不过要是空指针,修改一下,应该可以避免。不过一般出现空指针,可能意味着你程序的逻辑不正确。所以修改后没有空指针,但是你要看看,执行结果是否正确。
current=current.getLink();
if(current!=null){
ListNode tmp=current.getLink();
if(tmp!=null)
w=tmp.getData();
}