Node pre, head; public Node treeToDoublyList(Node root) { if (root == null){ return null; } dfs(root); // 处理头节点和尾节点指针 head.left = pre; pre.right = head; return head; } public void dfs(Node cur){ // 中序遍历 if (cur == null){ return; } dfs(cur.left); if(pre != null) { // 反之 让前驱节点指向当前节点 pre.right = cur; } else { // 如果是第一个节点 则用head保存 head = cur; } // 当前节点指向前驱节点 cur.left = pre; // pre保留前驱 pre = cur; dfs(cur.right); }
剑指Offer-36二叉搜索树与双向链表
猜你喜欢
转载自blog.csdn.net/a792396951/article/details/113877732
今日推荐
周排行