logologo

给你一个栈 请你逆序这个栈,不能申请额外的数据结构

Oct 23, 2023

使用额外栈的思路

使用额外栈的思路

不使用额外栈(递归!)

使用额外栈的思路

public static void reverse(Stack<Integer> stack) {
  if (stack.isEmpty())
    return;

  int i = f(stack);
  reverse(stack);
  stack.push(i);
}

// 递归子过程
public static int f(Stack<Integer> stack) {
  int result = stack.pop();
  if (stack.isEmpty())
    return result;
  else {
    int last = f(stack);
    stack.push(result);
    return last;
  }
}

C++Java
浙ICP备2021022773号    2022-PRESENT © ZhengKe