小编Ama*_*ver的帖子

甚至在奇数元素之后对LinkedList进行排序

我试图解决这个问题:"在给定的链接列表中排列元素,使得所有偶数都放在奇数之后.各元素的顺序应保持相同."

这是我正在使用的代码:

class Node<T> {
    T data;
    Node<T> next;
    Node(T data) {
        this.data = data;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是主要逻辑:

static Node<Integer> sortOddEven(Node<Integer> head) {
    if(head == null || head.next == null) {
        return head;
    }

    Node<Integer> middle = getMiddle(head);
    Node<Integer> nextOfMiddle = middle.next;

    middle.next = null;

    Node<Integer> temp1 = sortOddEven(head);
    Node<Integer> temp2 = sortOddEven(nextOfMiddle);

    Node<Integer> sortedList = sortOddEvenMerger(temp1, temp2);
    return sortedList;
}

static Node<Integer> sortOddEvenMerger(Node<Integer> head1, Node<Integer> head2) {
    Node<Integer> head3 = null, tail3 = null;

    if(head1.data.intValue()%2 != 0) {
        head3 …
Run Code Online (Sandbox Code Playgroud)

java algorithm mergesort

5
推荐指数
1
解决办法
400
查看次数

从静态上下文引用非静态变量

我正在阅读Kathy和Bert SCJP 1.6并遇到以下代码:

class Bar {
int barNum = 28;
}

class Foo {
  Bar myBar = new Bar();
  void changeIt(Bar myBar) {
    myBar.barNum = 99;
    System.out.println("myBar.barNum in changeIt is " + myBar.barNum);
    myBar = new Bar();
    myBar.barNum = 420;
    System.out.println("myBar.barNum in changeIt is now " + myBar.barNum);
 }
  public static void main (String [] args) {
    Foo f = new Foo();
    System.out.println("f.myBar.barNum is " + f.myBar.barNum);
    f.changeIt(f.myBar);
    System.out.println("f.myBar.barNum after changeIt is "
    + f.myBar.barNum);
 }
}
Run Code Online (Sandbox Code Playgroud)

虽然它是阴影变量的主题,但我无法理解如何在main()方法(静态)中引用非静态变量myBar?

java static non-static

2
推荐指数
1
解决办法
189
查看次数

标签 统计

java ×2

algorithm ×1

mergesort ×1

non-static ×1

static ×1