From d9ed51ad0011a916daf391f92ebb375177c0e748 Mon Sep 17 00:00:00 2001 From: Zhao Yihao Date: Sun, 22 Nov 2020 15:14:49 +0800 Subject: [PATCH] Update ListUDG.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 有个bug,在往链表尾部 追加节点时,需要先判断链表中是否存在改节点,如果不存在,再往里面添加 --- source/graph/basic/udg/java/ListUDG.java | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/source/graph/basic/udg/java/ListUDG.java b/source/graph/basic/udg/java/ListUDG.java index 2ece9f3..091bdcc 100644 --- a/source/graph/basic/udg/java/ListUDG.java +++ b/source/graph/basic/udg/java/ListUDG.java @@ -129,12 +129,32 @@ public ListUDG(char[] vexs, char[][] edges) { * 将node节点链接到list的最后 */ private void linkLast(ENode list, ENode node) { + + // 判断list中是否有node + if(hasNode(list, node)) + return; + + ENode p = list; while(p.nextEdge!=null) p = p.nextEdge; p.nextEdge = node; } + + // 单链表的查询功能 + private boolean hasNode(ENode list, ENode node) { + if(list == null) { + return false; + } + + ENode n = list; + if(n.index == node.index){ + return true; + }else{ + return hasNode(n.next, node); + } + } /* * 返回ch位置