题解 | #KiKi学结构体和指针#
二叉树的前序遍历
http://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635
利用栈的方式进行二叉树的线序遍历
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return int整型一维数组
*/
// public int[] preorderTraversal (TreeNode root) {
// // write code here
// List<Integer> list = new ArrayList<>();
// trans(list, root);
// int[] res = new int[list.size()];
// for(int i = 0; i < list.size(); i++){
// res[i] = list.get(i);
// }
// return res;
// }
// public static void trans(List<Integer> queue, TreeNode root){
// if(root != null){
// queue.add(root.val);
// trans(queue, root.left);
// trans(queue, root.right);
// }
// }
public int[] preorderTraversal (TreeNode root) {
// write code here
int[] a = {};
if(root == null){
return a;
}
ArrayList<Integer> list = new ArrayList<>();
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode node = stack.pop();
list.add(node.val);
if(node.right != null){
stack.push(node.right);
}
if(node.left != null){
stack.push(node.left);
}
}
int[] res = new int[list.size()];
for(int i = 0; i < list.size(); i++){
res[i] = list.get(i);
}
return res;
}
}
查看11道真题和解析