/**
* @ClassName: _144_二叉树的前序遍历
* @Description: TODO
* @Author 毛毛
* @CreateDate 2021/07/23/周五 10:51
* @Version: v1.0
*/
public class _144_二叉树的前序遍历 {
public static void main(String[] args) {
TreeNode t3 = new TreeNode(3,null,null);
TreeNode t2 = new TreeNode(2,t3,null);
TreeNode t1 = new TreeNode(1,null,t2);
System.out.println(new _144_二叉树的前序遍历().preorderTraversal(t1));
System.out.println(new _144_二叉树的前序遍历().preorderTraversal(new TreeNode(1,null,null)));
}
/**
* 根据二叉树的根节点,完成前序遍历
* @param root
* @return
*/
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> list = new ArrayList<>();
preorderTraversal(root,list);
return list;
}
private void preorderTraversal(TreeNode node,List<Integer> list) {
if(node == null) return;
// 前序遍历,先让当前根节点入链表,然后在遍历左右子节点
list.add(node.val);
if(node.left!=null) preorderTraversal(node.left,list);
if(node.right!=null) preorderTraversal(node.right,list);
}
public static 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;
}
}
}
力扣第144题-二叉树的前序遍历
最新推荐文章于 2023-08-02 16:56:43 发布