m***p 发帖数: 86 | 1 single linked list版本:
void reverse(Node head){
Node cur = head;
Node prev = null;
while(cur != null){
Node nextNode = cur.next;
cur.next = prev;
prev = cur;
cur = nextNode;
}
return prev;
}
double linked list版本:
void reverse(Node head){
Node cur = head;
Node prev = null;
while(cur != null){
Node nextNode = cur.next;
cur.next = prev;
cur.prev = nextNode;
prev = cur;
cur = nextNode;
}
return prev;
}
我认为好像只有多一个prev node的设置, 还有别的需要考虑的地方吗?
感谢解惑! |
m***p 发帖数: 86 | 2 请问有什么不对的地方吗? 尤其是double linked list部分? |
w****3 发帖数: 110 | 3 double linkedlist 为什么还要reverse?
【在 m***p 的大作中提到】 : 请问有什么不对的地方吗? 尤其是double linked list部分?
|
d******g 发帖数: 38 | 4 return type is not void
【在 m***p 的大作中提到】 : single linked list版本: : void reverse(Node head){ : Node cur = head; : Node prev = null; : while(cur != null){ : Node nextNode = cur.next; : cur.next = prev; : prev = cur; : cur = nextNode; : }
|
d******g 发帖数: 38 | 5 还是有点不同的吧,swap(cur.prev, cur.next)
【在 w****3 的大作中提到】 : double linkedlist 为什么还要reverse?
|
p**o 发帖数: 3409 | 6 双向链表其实可以封装一下,加个属性表示正向和逆向(翻转只要改这个值即可)
头尾指针用二重指针来做,中间结点的next和prev指针变量靠offset来区别
【在 d******g 的大作中提到】 : 还是有点不同的吧,swap(cur.prev, cur.next)
|
m***p 发帖数: 86 | 7 return type打错了, typo, 请问函数本身有什么不对的地方吗?
【在 d******g 的大作中提到】 : 还是有点不同的吧,swap(cur.prev, cur.next)
|