单向链表,双向链表操作
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 }