数组遍历框架(线性迭代结构)
void traverse(int[] arr){
for(int i = 0;i < arr.length;i++){
//迭代访问arr[i]
}
}
链表遍历框架(迭代+递归结构)
/*单链表节点*/
class ListNode{
int val;
ListNode next;
}
void traverse(ListNode head){
for(ListNode p = head;p != null;p = p.next){
//迭代访问p.val
}
}
void traverse(ListNode head){
//递归访问head.val
traverse(head.next)
}
二叉树遍历框架(非线性递归遍历)
/*基本的二叉树节点*/
class TreeNode{
int val;
TreeNode left,right;
}
void traverse(TreeNode root){
traverse(root.left)
traverse(root.right)
}
N叉树的遍历框架
/*基本的N叉树节点*/
class TreeNode{
int val;
TreeNode[] children;
}
void traverse(TreeNode root){
for(TreeNode child : root.children)
traverse(child)
}