21xrx.com
2024-11-05 18:53:30 Tuesday
登录
文章检索 我的文章 写文章
为Java面试做好准备:代码案例分享
2023-06-16 12:48:00 深夜i     --     --
Java 面试 准备

在准备Java面试的过程中,练习编写代码是一个非常重要的环节。下面将分享一些常见面试题的代码案例,帮助大家更好地准备面试。

1. 实现快速排序算法

快速排序是一种常见的排序算法,其时间复杂度为O(nlogn)。下面是一个使用Java实现快速排序的例子:


public static void quickSort(int[] arr, int left, int right) {

  if (left < right) {

    int i = left, j = right, pivot = arr[left];

    while (i < j) {

      while (i < j && arr[j] > pivot)

        j--;

      

      if (i < j) {

        arr[i++] = arr[j];

      }

      while (i < j && arr[i] <= pivot) {

        i++;

      }

      if (i < j) {

        arr[j--] = arr[i];

      }

    }

    arr[i] = pivot;

    quickSort(arr, left, i - 1);

    quickSort(arr, i + 1, right);

  }

}

2. 如何反转一个链表

反转链表是一个常见的面试题目,下面是一个使用Java实现反转链表的例子:


public ListNode reverseList(ListNode head) {

  if (head == null || head.next == null) {

    return head;

  }

  ListNode p = reverseList(head.next);

  head.next.next = head;

  head.next = null;

  return p;

}

3. 实现二叉树的前序遍历

二叉树的遍历是一个常见的面试题目,下面是一个使用Java实现二叉树前序遍历的例子:


public List preorderTraversal(TreeNode root) {

  List res = new ArrayList<>();

  if (root == null) {

    return res;

  }

  Stack stack = new Stack<>();

  stack.push(root);

  while (!stack.isEmpty()) {

    TreeNode node = stack.pop();

    res.add(node.val);

    if (node.right != null) {

      stack.push(node.right);

    }

    if (node.left != null) {

      stack.push(node.left);

    }

  }

  return res;

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复