擅长:python、mysql、java
<p><code>unless the value
added is less than any value already in the set</code>听起来好像应该对这个列表进行排序。所以你浏览列表,找到第一个比你的值大的项目,然后把它拼接在那里。在</p>
<p>通过跟踪当前节点来遍历列表:</p>
<pre><code>def addValue(linkedSet, value):
newNode={}
newNode['data']=value
newNode['next'] = None
#traverse list
current = linkedSet
while True:
if current['value'] == value:
return linkedSet # it was already in that list
if current['value'] > value:
# new node is the new head
newNode['next'] = linkedSet
return newNode # new head
if current['next'] is None:
# new tail
current['next'] = new_node
return linkedSet
if current['next']['value'] > value:
# new node belongs here, splice it in
next_node = current['next']
current['next'] = newNode
newNode['next'] = next_node
return linkedSet
# didnt return so far, try the next element:
current = current['next']
</code></pre>