快慢指针
奇数返回中点,偶数返回上中点
slow=head.next;
fast=head.next.next;
while(head!=null){
if(head==null||head.next=null||head.next.next==null;){
return head;}
if(fast.next!=null&&fast.next.next!=null){
slow=slow.next;
fast=fast.next.next;
}
return slow;
}
奇数返回中点,偶数返回下中点
slow=head.next;
fast=head.next;
while(head!=null){
if(head==null||head.next=null||head.next.next==null;){
return head;}
if(fast.next!=null&&fast.next.next!=null){
slow=slow.next;
fast=fast.next.next;
}
return slow;
}
奇数返回中点前一个,偶数返回上中点前一个
slow=head;
fast=head.next.next;
while(head!=null){
if(head==null||head.next=null||head.next.next==null;){
return null;}
if(fast.next!=null&&fast.next.next!=null){
slow=slow.next;
fast=fast.next.next;
}
return slow;
}
奇数返回中点前一个,偶数返回下中点前一个
slow=head;
fast=head.next;
while(head!=null){
if(head==null||head.next=null){
return null;}
if(head.next.next==null;){
return head;}
if(fast.next!=null&&fast.next.next!=null){
slow=slow.next;
fast=fast.next.next;
}
return slow;
}
二叉树遍历
前序遍历
public static void pre(Node head){
if(head ==null){
return;
}
System.out.print(head.value);
pre(head.left);
pre(head.right);
}
中序遍历
public static void in(Node head){
if(head ==null){
return;
}
pre(head.left);
System.out.print(head.value);
pre(head.right);
}
后序遍历
public static void pos(Node head){
if(head ==null){
return;
}
pre(head.left);
pre(head.right);
System.out.print(head.value);
}