单向链表,双向链表操作

1、单向链表

反向打印单向链表:

1 public Stack<Integer> printListFromTailToHead(ListNode listNode){
2         Stack<Integer> stack=new Stack<>();
3         while(listNode!=null){
4             stack.push(listNode.val);
5             listNode=listNode.next;
6         }
7         return stack;
8     }

删除特定节点:

 1 public void deleteNode(Linklist head,Linklist node){
 2         if(node==null||head==null){
 3             return;
 4         }
 5         if(head==node){
 6             head=null;
 7         }else{
 8             if(node.next==null){
 9                 Linklist frontnode=head;
10                 while(frontnode.next.next!=null){
11                     frontnode=frontnode.next;
12                 }
13                 frontnode.next=null;
14             }else{
15                 node.value=node.next.value;
16                 node.next=node.next.next;
17             }
18         }
19     }

2、双向链表删除特定节点:

1 public void deletnode(linkNode node){
2         if(node==null){
3             return;
4         }else{
5             node.pre.next=node.next;
6             node.next.pre=node.pre;
7         }
8     }

 

posted @ 2017-05-05 19:52  lulushow  阅读(169)  评论(0编辑  收藏  举报