題目
倒序打印鏈表
題解
- 遞歸
int size = 0;
int index = 0;
int [] data;
public int[] printDesc(ListNode root) {
visit(root);
return data;
}
private void visit(ListNode root){
if(root==null){
data = new int[size];
return;
}
size++;
visit(root.getNext());
data[index++] = root.getValue();
}
- 非遞歸方式 我們使用棧即可
public int[] printDescByStack(ListNode root) {
Deque<Integer> stack = new LinkedList<>();
while (root != null) {
stack.push(root.getValue());
root = root.getNext();
}
int []res = new int[stack.size()];
int index = 0;
while (!stack.isEmpty()){
res[index++]=stack.pop();
}
return res;
}
源碼: 劍指offer4J