java 之 数组倒置、单链表倒置

来源:互联网 发布:程序员去金融公司 编辑:程序博客网 时间:2024/06/05 15:51

数组倒置

这个主要是说明 在进行整数类型的数组的时候如果是交换位置的话适用位运算符的效率会很高。

public static void arrayReverse(int[] array) {    if (null == array || array.length == 0 || array.length == 1) {      return;    }    int length = array.length;    for (int i = 0; i < length / 2; i++) {      array[i] ^= array[length - i - 1];      array[length - i - 1] ^= array[i];      array[i] ^= array[length - i - 1];    }  }

但链表的倒置

直接上代码了

public static Node nodeReverse(Node node) {    //获取头节点    Node head = node;    Node next = null;    Node tmp = null;    while(head != null) {      //获取头节点的下区节点      next = head.next;      //头节点的下个节点指向临时的Node      head.next = tmp;      //临时节点指向头节点      tmp = head;      head = next;    }    node = tmp;    return node;  }  public static void printNode(Node node) {    if (node == null)      return;    while (node != null) {      System.out.println(node.item);      node = node.next;    }  }  public static void main(String[] args) {    Node head = new Node("head");    Node node1 = new Node("1");    Node node2 = new Node("2");    Node node3 = new Node("3");    Node node4 = new Node("4");    Node node5 = new Node("5");    head.next = node1;    node1.next = node2;    node2.next = node3;    node3.next = node4;    node4.next = node5;    printNode(head);    Node lNode = nodeReverse(head);    printNode(lNode);  }
1 0
原创粉丝点击