解题思路:
遍历链表,断掉所有节点值等于val的链cur表示当前的节点,pre代表cur的前一个节点
当cur.val == val时,pre.next = cur.next,这样,就跨过了这个节点,此时,cur也要指向cur.next
当cur.val != val时,此时不用删除,则pre=pre.next,cur=cur.next。
get(index):获取链表中第index个节点的值。如果索引无效,则返回-1。
addAtHead(val):在链表的第一个元素之前添加一个值为val的节点。插入后,新节点将成为链表的第一个节点。
addAtTail(val):将值为val 的节点追加到链表的最后一个元素。
addAtIndex(index,val):在链表中的第index个节点之前添加值为val 的节点。如果index等于链表的长度,则该节点将附加到链表的末尾。如果 index 大于链表长度,则不会插入节点。如果index小于0,则在头部插入节点。
deleteAtIndex(index):如果索引index 有效,则删除链表中的第index 个节点。
首先从链表读出输入的两个加数,接着相加,得到结果,然后将结果转成str,再转成list,然后将列表逆序,最后将逆序结果转成链表。转成list是为了调用列表的reverse函数,转成str是因为int无法直接转成list,需要通过str作为中间媒介。在转成链表设置val的时候,需要将传入的类型从str转成int,因为之前的操作将值的类型转成了str,现在需要转回去。
首先定义cur为空节点 再定义pre为head头节点,之后进行反转并定义temp为下一个节点(防止下一节点2孤立无法继续循环) 之后继续将cur节点的next为pre 得到pre=cur cur=temp 直到none 变为尾节点