Java 中这个复合赋值的求值顺序是什么?

What's the order of evaluation with this compound assignment in Java?

    ListNode odd = head;
    ListNode even = head.next;
    odd = odd.next = even.next;
    even = even.next = odd.next;

用这行:odd = odd.next = even.next;even.next 分配给 odd.next 然后 odd.next 分配给 odd?或者 odd.next 分配给 odd 然后 even.next 分配给 odd.next

赋值是右结合。这意味着语句被解释为:

odd = (odd.next = even.next);

这与许多运营商不同。例如减法,1 - 2 - 3(1 - 2) - 3 而不是 1 - (2 - 3).

Java 对 = assignemnts

具有从右到左的结合性

请注意,不同的运算符有不同的优先级和结合性。值得一读:https://www.w3adda.com/java-tutorial/java-operator-precedence-and-associativity

...或为完全清楚起见使用括号