在本科毕设结束后,我开始刷卡哥的“代码随想录”,每天一节。自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。
代码随想录此题链接
略
三步
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
前序
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<Integer>();
travelTreeNode(root,result);
return result;
}
public void travelTreeNode(TreeNode curNode,List<Integer> result){
if(curNode == null){
return;
}else{
result.add(curNode.val);
travelTreeNode(curNode.left,result);
travelTreeNode(curNode.right,result);
}
}
中序
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<Integer>();
travelTreeNode(root,result);
return result;
}
public void travelTreeNode(TreeNode curNode,List<Integer> result){
if(curNode == null){
return;
}else{
travelTreeNode(curNode.left,result);
result.add(curNode.val);
travelTreeNode(curNode.right,result);
}
}
后序
public List<Integer> postorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<Integer>();
travelTreeNode(root,result);
return result;
}
public void travelTreeNode(TreeNode curNode,List<Integer> result){
if(curNode == null){
return;
}else{
travelTreeNode(curNode.left,result);
travelTreeNode(curNode.right,result);
result.add(curNode.val);
}
}
略
略