深圳房地产网站开发,在线答题网站开发,多国语言网站模板,网页视频怎么下载到电脑2024.2.18 题目来源我的题解方法一 深度优先遍历#xff08;递归方式#xff09;方法二 迭代方式#xff08;栈实现#xff09; 题目来源
力扣每日一题#xff1b;题序#xff1a;589
我的题解
方法一 深度优先遍历#xff08;递归方式#xff09; 与二叉树的前序遍… 2024.2.18 题目来源我的题解方法一 深度优先遍历递归方式方法二 迭代方式栈实现 题目来源
力扣每日一题题序589
我的题解
方法一 深度优先遍历递归方式 与二叉树的前序遍历相似只是遍历子节点的细节不同 时间复杂度O(n) 空间复杂度O(n) public ListInteger preorder(Node root) {ListInteger resnew ArrayList();pre(root,res);return res;
}
public void pre(Node root,ListInteger res){if(rootnull)return;res.add(root.val);//与二叉树前序遍历不同的细节之处for(Node node:root.children){pre(node,res);}
}方法二 迭代方式栈实现 与二叉树的迭代方式相同细节有所不同 时间复杂度O(n) 空间复杂度On() public ListInteger preorder(Node root) {ListInteger resnew ArrayList();if(rootnull)return res;LinkedListNode stacknew LinkedList();stack.push(root);while(!stack.isEmpty()){Node tstack.pop();res.add(t.val);//细节的不同需要将同一个父节点的所有子节点按照从右到左的顺序入栈for(int it.children.size()-1;i0;i--){Node nodet.children.get(i);stack.push(node);}}return res;
}有任何问题欢迎评论区交流欢迎评论区提供其它解题思路代码也可以点个赞支持一下作者哈~