小编use*_*235的帖子

如何撤消链表?

 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

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

此函数中的"min"和"max"是什么来检查二叉树是否是有效的BST?

下面的代码来自查找二进制树是否为二进制搜索树.

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)

如何MINMAX在这里被使用?它们代表什么价值?为什么他们需要通过该功能?

java algorithm data-structures

5
推荐指数
2
解决办法
2498
查看次数