我试图解决这个问题:"在给定的链接列表中排列元素,使得所有偶数都放在奇数之后.各元素的顺序应保持相同."
这是我正在使用的代码:
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) 我正在阅读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?