Node reverse(Node head) {
Node previous = null;
Node current = head;
Node forward;
while (current != null) {
forward = current.next;
current.next = previous;
previous = current;
current = forward;
}
return previous;
}
Run Code Online (Sandbox Code Playgroud)
究竟是如何扭转名单的呢?我知道它首先将第二个节点设置为forward.然后它说current.next等于一个null节点previous.然后它说previous现在current.最后current成为forward?
我似乎无法掌握这一点以及它的逆转方式.有人可以解释这是如何工作的吗?
java algorithm linked-list data-structures singly-linked-list
下面的代码来自查找二进制树是否为二进制搜索树.
bool IsValidBST(BinaryNode node, int MIN, int MAX)
{
if(node == null)
return true;
if(node.element > MIN
&& node.element < MAX
&& IsValidBST(node.left,MIN,node.element)
&& IsValidBST(node.right,node.element,MAX))
return true;
else
return false;
}
Run Code Online (Sandbox Code Playgroud)
如何MIN和MAX在这里被使用?它们代表什么价值?为什么他们需要通过该功能?